C++ this指针(八股总结)

定义

this 指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象。

当对一个对象调用成员函数时,编译程序先将对象的地址赋给 this 指针,然后调用成员函数,每次成员函数存取数据成员时,都隐式使用 this 指针。

作用

1.解决成员变量与函数参数同名的问题

当成员变量和函数参数同名时,可以用 this 指针来区分。

示例:

c++ 复制代码
class Example {
private:
    int value;

public:
    void setValue(int value) {
        this->value = value; // 使用 this 区分成员变量和参数
    }

2. 支持方法链调用

通过返回 *thisthis,可以支持链式调用(method chaining)。

示例:

c++ 复制代码
#include <iostream>
using namespace std;

class Example {
private:
    int value;

public:
    Example& setValue(int v) {
        value = v;
        return *this; // 返回当前对象的引用
    }

    Example& increment() {
        value++;
        return *this; // 返回当前对象的引用
    }

    void display() {
        cout << "Value: " << value << endl;
    }
};

int main() {
    Example obj;
    obj.setValue(10).increment().display(); // 链式调用
    return 0;
}

输出:

Value: 11
相关推荐
Stanford_1106几秒前
关于物联网的基础知识(三)——物联网技术架构:连接万物的智慧之道!连接未来的万物之网!
c++·物联网·学习·微信小程序·架构·twitter·微信开放平台
qq19783663088 分钟前
Python 批量生成Word 合同
开发语言·python·自动化·word
ChoSeitaku16 分钟前
No.6十六届蓝桥杯备战|赋值操作符|连续赋值|复合赋值|类型转换|强制|混合|赋值(C++)
c++·算法·蓝桥杯
棋丶21 分钟前
VUE2和VUE3的区别
开发语言·前端·javascript
萌の鱼32 分钟前
leetcode 2279. 装满石头的背包的最大数量
数据结构·c++·算法·leetcode
--Ekko--33 分钟前
嵌入式入门Day38
c++
Pandaconda41 分钟前
【Golang 面试题】每日 3 题(二十三)
开发语言·后端·面试·golang·go·channel
sun00770044 分钟前
C++中,typename
开发语言·c++
C++小厨神1 小时前
Go语言的数据库交互
开发语言·后端·golang
毒丐1 小时前
GCC使用说明
linux·c语言·c++