1.this指標的經典描述:
當你進入乙個房子後,
你可以看見桌子、椅子、地板等,
但是房子你是看不到全貌了。
對於乙個類的例項來說,
你可以看到它的成員函式、成員變數,
但是例項本身呢?
this是乙個指標,它時時刻刻指向你這個例項本身
2.this指標的使用:
一種情況就是,在類的非靜態成員函式中返回類物件本身的時候,直接使用 return *this;
另外一種情況是當引數與成員變數名相同時,如this->n = n (不能寫成n = n)。
3.this 指標的特點:
1)this只能在成員函式中使用。指向被呼叫函式所在的類例項的位址
全域性函式、靜態函式都不能使用this,
2)this在成員函式的開始前構造,在成員函式的結束後清除。
生命週期:同任何乙個函式的引數一樣
實際上,成員函式預設第乙個引數為t * const this。
當對乙個物件呼叫成員函式時,編譯程式先將物件的位址賦給this指標,然後呼叫成員函式,每次成員函式訪問資料成員時,由隱含使用this指標。
如:class a
};其中,func的原型在編譯器看來應該是: int func(a * const this,int p);
this指標被隱含地宣告為: x *const this,這意味著不能給this 指標賦值;
3)乙個物件的this指標並不是物件本身的一部分,不會影響sizeof(物件)的結果。
4)我們只有獲得乙個物件後,才能通過物件使用this指標
在c++中 ,類和結構是只有乙個區別的:類的成員預設是private,而結構是public。this是類的指標,如果換成結構,那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的原因。下面就來談談指標的應用以及需要注意的一些問題,裡面也許就有你平時沒有注意到的問題,希望能幫助各位讀者理解好指標。一 我們先來回憶一下指標的概念吧,方...