C this指標詳解

2021-09-24 13:18:46 字數 1009 閱讀 7090

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...