c 中的this指標

2021-08-07 20:26:12 字數 1083 閱讀 5372

this指標的作用:因為c++中的成員資料和成員函式是分開的,非內聯成員函式只生成乙份例項,所有物件共享非內聯成員函式,哪這一塊**是如何區分那個物件呼叫自己的呢?

這時候this指標就是可以區別出哪個物件呼叫的這一塊**,this指標指向被呼叫的成員函式所屬的物件,this指標永遠指向當前物件

怎麼確定成員函式和成員資料是分開的,看如下例子:

#includeusing namespace std;

class fun1

;class fun2

int val;

};class fun3

void test2()

int val; };

int main()

結果如下:

結果都為4說明函式和資料是分開的,成員函式在另外的地方開闢記憶體

注意:靜態成員函式內部沒有this指標,靜態成員函式不能操作非靜態成員變數

c++對普通成員函式的內部處理

#includeusing namespace std;

//這是乙個person類

class person

person getv()

static void printfper()

int v;

};int main()

//c++編譯器內部處理

struct person

;void person_constructor(person* pthis, int v)

person person_getv(person* pthis)

static void person_printfper()

int main()

this指標的使用當形參和成員變數同名時,可用this指標來區分

在類的非靜態成員函式中返回物件本身,可使用return *this

C 中的this指標

當乙個成員函式被呼叫時,自動向它傳遞乙個隱含的引數,該引數是乙個指向接 受該函式的呼叫的物件的指標,在程式中可以使用關鍵字this指標來引用改制鎮,因此稱該指標為this指標。this指標是c 實現封裝的一種機制,它將成員和用於操作這些成員的成員函式聯絡在一起。例如 location類的成員函式in...

C 中的this指標

1.this 指標的引入 每個成員函式 static函式外 都有乙個額外的隱含的this指標,乙個類物件在條用成員函式時this指標初始化為呼叫函式物件的位址。例1 sales item.h class sales item sales item.cpp bool sales item same i...

C 中的指標

在學習c c 過程中,指標是乙個比較讓人頭痛的問題,稍微不注意將會是程式編譯無法通過,甚至造成宕機。在程式設計過程中,指標也往往是產生隱含bug的原因。下面就來談談指標的應用以及需要注意的一些問題,裡面也許就有你平時沒有注意到的問題,希望能幫助各位讀者理解好指標。一 我們先來回憶一下指標的概念吧,方...