this 是 c++ 中的乙個關鍵字,也是乙個 const 指標,它指向當前物件,通過它可以訪問當前物件的所有成員。
所謂當前物件,是指正在使用的物件。例如對於stu.show();
,stu 就是當前物件,this 就指向 stu。
下面是使用 this 的乙個完整示例:
#include using namespace std;
class student;
void student::setname(char *name)
void student::setage(int age)
void student::setscore(float score)
void student::show()
執行結果:
李華的年齡是16,成績是96.5
this 只能用在類的內部,通過 this 可以訪問類的所有成員,包括 private、protected、public 屬性的。
本例中成員函式的引數和成員變數重名,只能通過 this 區分。以成員函式setname(char *name)
為例,它的形參是name
,和成員變數name
重名,如果寫作name = name;
這樣的語句,就是給形參name
賦值,而不是給成員變數name
賦值。而寫作this -> name = name;
後,=
左邊的name
就是成員變數,右邊的name
就是形參,一目了然。
注意,this 是乙個指標,要用->
來訪問成員變數或成員函式。
this 雖然用在類的內部,但是只有在物件被建立以後才會給 this 賦值,並且這個賦值的過程是編譯器自動完成的,不需要使用者干預,使用者也不能顯式地給 this 賦值。本例中,this 的值和 pstu 的值是相同的。
幾點注意:
c this 指標詳解
首先來觀察一段 class myclass int data const void tmyclass 我們知道類的成員函式在記憶體只有乙份拷貝,而類的資料成員 不考慮靜態成員 是每個物件都有自己的乙份,所以上述 中obj1和obj2呼叫data函式是同乙個函式,但它們擁有各自的資料,所以輸出結果為0...
C this指標詳解
this 是c 中的乙個關鍵字,也是乙個常量指標,指向當前物件 具體說是當前物件的首位址 通過 this,可以訪問當前物件的成員變數和成員函式。所謂當前物件,就是正在使用的物件,例如對於stu.say stu 就是當前物件,系統正在訪問 stu 的成員函式 say 假設 this 指向 stu 物件...
C this指標詳解
this指標 每個成員函式都有乙個隱含的輸入引數this指標,this指向當前物件,this指標可以用來訪問物件的資料成員。class b void fun const intx inty int main 結果 當前物件的this指標型別 當前物件的this指標型別 當前物件的this指標型別 c...