this指针是C++中每个非静态成员函数内隐式存在的指向当前对象的常量指针,用于解决命名冲突、实现链式调用、传递当前对象、判断自赋值等;它不可修改,静态函数无this,const成员函数中this为const类型指针。

this 指针是 C++ 中每个非静态成员函数内部自动存在的一个隐式指针,它指向调用该成员函数的那个对象本身。它的类型是 类名* const(即指向当前类对象的常量指针),生命周期仅限于成员函数执行期间。
为什么需要 this 指针?
当成员函数中出现与成员变量同名的形参或局部变量时,编译器无法自动区分该访问的是局部变量还是成员变量。this 指针提供了明确访问当前对象成员的途径。
例如:
class Person {
std::string name;
public:
void setName(std::string name) {
this->name = name; // 用 this-> 明确表示赋值给成员变量
}
};登录后复制
常见使用场景
-
解决命名冲突:如上例,在构造函数或 setter 中用
this->xxx区分参数和成员变量 -
返回当前对象的引用:实现链式调用,比如
obj.setA(1).setB(2).print(),通常返回*this -
在成员函数中传递当前对象:比如把
this传给其他函数或作为回调参数 -
判断自赋值(self-assignment):在重载赋值运算符时,先检查
if (this == &other)避免无效操作
需要注意的细节
this 指针不能被修改 —— 它是右值,你不能给它重新赋值(如 this = nullptr; 是非法的)。
立即学习“C++免费学习笔记(深入)”;
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~