引言:
首先我们知道,类的成员函数可以访问类的数据。那么,成员函数如何知道哪个对象的数据成员要被操作呢?因为,每个对象都拥有一个指针:this指针。因此,可以通过this指针来访问该对象自己的地址。
一、this指针的概念
1.定义:在成员函数内部,它可以用来指向调用对象。
2.this指针只能在成员函数中调用。(友元函数、全局函数不是成员函数)
3.this指针不能在静态函数中使用
理由:静态函数如同静态变量一样,他不属于具体的哪一个对象,静态函数表示了整个类范围意义上的信息,而this指针却实实在在的对应一个对象,所以this指针不能被静态函数使用。
4.this指针的创建
this指针在成员函数的开始执行前构造的,在成员函数执行结束后清除。
5.this指针只有在成员函数中才有意义。
二、this指针的操作
#include<iostream>
using namespace std;
class A
{
public:
A()
{
x = 0;
}
void display()
{
cout << this << endl;
cout << this->x << endl;
cout << x << endl;
cout << (*this).x << endl;
}
private:
int x;
};
int main()
{
A a;
a.display();
return 0;
}
输出: