this指针用于记录当前对象的内存地址,然后通过“->”访问对象的成员,如:
#include <iostream>
using namespace std;
class A
{
public:
int get(){return i;}
void set(int x){this->i=x;cout<<"this指针保存的内存地址"<<this<<endl;}
private:
int i;
};
int main()
{
A a;
a.set(10);
cout<<"对象a的内存地址"<<&a<<endl;
cout<<"对象a的值:"<<a.get()<<endl;
A b;
b.set(100);
cout<<"对象b的内存地址"<<&b<<endl;
cout<<"对象b的值:"<<b.get()<<endl;
return 0;
}
输出结果:
分析:
1、this指针永远指向当前对象,即保存当前正在使用对象的地址,当对象a被创建时,this指针保存a的对象地址,当对象b被创建时,this指针保存b的对象地址;
2、语句this->i=x中的“this->”可以省略不写,编译器会在"i=x"前自动加上"this->";
3、this指针的创建与删除是由编译器完成的。