一.用代碼來分析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的位址初始化了。