this指針
特性
(1)this指針的類型:類類型* const。
(2)this指針并不是對象本身的一部分,不影響sizeof的結果。
(3)this是一個指針,它時時刻刻指向對象的實例。
(4)this指針的作用域在類成員函數的內部(不嚴謹)。
(5)this指針是類成員函數的第一個默認隱含參數,編譯器自動維護傳遞。
(6)只有類的非靜態成員函數中才可以使用this指針,其它成員函數都不可以。
_thiscall調用約定
(1)_thiscall只能夠在類的成員函數上;
(2)參數從右向左壓棧;
(3)如果參數個數確定,this指針通過ecx傳給被調用者。如果參數不確定,this指針在所有參數被壓棧后壓入堆棧;
(4)參數個數不定的,調用者清理堆棧,否則函數自己清理堆棧。
this指針是否為空?
當將空的this傳給test函數時,test沒有調用任何函數,因此執行此函數,沒有報錯;
當把空的this傳給change函數時,通過this指針調用this-》name,由于this是空的,因此會出錯。
總結:
(1)NULL對象指針可以調用成員函數;
(2)通過對象調用成員函數,對象的指針會被傳入函數中,指針名稱為this;
(3)NULL對象指針調用成員函數時,只要不訪問此對象的成員變量,則程序正常運行;
(4)NULL對象指針調用成員函數時,一旦訪問此對象的成員變量,則程序崩潰。
-
封裝
+關注
關注
126文章
7794瀏覽量
142740 -
指針
+關注
關注
1文章
480瀏覽量
70512 -
C++
+關注
關注
22文章
2104瀏覽量
73503 -
this
+關注
關注
0文章
5瀏覽量
3254
發布評論請先 登錄
相關推薦
評論