📅  最后修改于: 2023-12-03 15:14:01.882000             🧑  作者: Mango
this
指针在C++中,this
是一个指向当前对象的指针,它是一个隐式参数,能够让对象在成员函数内部访问自身的成员变量和成员函数。在类的非静态成员函数中,可以使用this
指针来引用当前实例对象。
this
指针的类型this
指针的类型是指向当前对象的非常量指针,它的具体类型取决于所在类的类型。在成员函数内部,可以使用this
指针来访问当前对象的成员。
class MyClass {
public:
void printAddress() {
cout << "Address of the object: " << this << endl;
}
};
int main() {
MyClass obj;
obj.printAddress(); // 输出:Address of the object: 0x7fff56546abc
return 0;
}
在上面的示例中,printAddress()
函数使用this
指针来打印当前对象的地址。请注意,this
指针的类型是MyClass*
,指向MyClass
类的对象。
this
指针在成员函数内,可以使用this
指针来访问当前对象的成员变量和成员函数,以区分局部变量和参数名与成员变量同名的情况。
class MyClass {
private:
int num;
public:
void setNum(int num) {
this->num = num; // 使用this指针
}
int getNum() {
return this->num; // 使用this指针
}
};
在上述示例中,setNum()
函数使用this
指针来访问成员变量num
,以区分传入参数num
与成员变量同名的情况。
this
指针的限制this
指针只能在成员函数内使用,而且只能在非静态成员函数中使用。静态成员函数没有隐式的this
指针。this
指针不能被显式地赋值。this
指针不能被删除。this
指针是一个指向当前对象的指针,它的类型取决于所在类的类型。在成员函数内部,可以使用this
指针来访问当前对象的成员变量和成员函数,以区分同名的局部变量和参数。请记住,this
指针只能在非静态成员函数中使用。