c++类中this表示什么,*this表示什么
时间: 2024-03-10 21:45:24 浏览: 17
在C++类中,this表示一个指向当前对象的指针,它指向正在执行成员函数的那个对象。this指针可以用来访问当前对象的成员变量和成员函数,也可以用来解决成员变量和局部变量同名的问题。例如,如果一个成员函数的参数名与类中的成员变量名相同,则可以用this指针来区分它们。
而 *this 表示解引用当前对象指针所指向的对象,即当前对象本身。可以通过 *this 访问当前对象的成员变量和成员函数,例如:
```
class MyClass {
public:
void printThis() {
cout << "this指针的值为:" << this << endl;
}
void printName() {
cout << "当前对象的名字为:" << name << endl;
}
private:
string name = "MyClass";
};
int main() {
MyClass obj;
obj.printThis(); // 输出 this指针的值为:0x7ffee9e68a50
MyClass* p = &obj;
p->printThis(); // 输出 this指针的值为:0x7ffee9e68a50
obj.printName(); // 输出 当前对象的名字为:MyClass
(*p).printName(); // 输出 当前对象的名字为:MyClass
return 0;
}
```
在上面的代码中,printThis() 函数输出了当前对象的地址,而 printName() 函数输出了当前对象的名字。通过 this 指针和 *this 操作符可以方便地访问当前对象的成员。