this指针是c++中的一个关键字,它在类中被自动隐藏了起来。
this指针指向当前对象并且只能用在类的内部使用,通过this指针我们可以访问类中的所有成员(public,protect,private)。
class A
{
public:
void setb(int b)
{
this->b = b;
}
private:
int b;
};
int main()
{
A a;
a.setb(1);
return 0;
}
上面代码中,当我们函数参数名称与类中成员名称相同时,我们可以使用this指针加以区分(但是最好在写的时候就不要重名,这里只是示例)。同时当我们创建a对象后,this指针才有意义。因为this指针刚开始并不存在,而是在编译阶段编译器帮我们加到参数列表里的。
通过上面也可以发现this确实指向对象。
由此我们也可以知道this不能指向static成员函数,因为static成员函数是属于类的,而不属于某一具体对象。