一.用代码来分析this指针更具体,代码如下:
#include<iostream>
using namespace std;
class thisTest
{
public:
int testForThisPoint() const;
private:
int a=2;
};
int thisTest::testForThisPoint() const
{
return a;
}
int main()
{
thisTest obj;
cout<<obj.testForThisPoint()<<endl;
return 0;
}
二.问题:代码中的a的值是如何被输出的呢?
三.this指针横空出世:成员函数通过一个名为this的额外的隐式参数来访问调用它的那个对象。当我们调用一个成员函数时,用请求该函数请求的对象地址初始化this。任何类成员的直接访问都被看作this指针的隐式引用。即:
return a;<===>return this->a;
而上式中的this是被对象obj的地址初始化了。