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對象指針調用成員函數時,一旦訪問此對象的成員變量,則程序崩潰。
-
封裝
+關注
關注
127文章
7992瀏覽量
143396 -
指針
+關注
關注
1文章
481瀏覽量
70608 -
C++
+關注
關注
22文章
2114瀏覽量
73854 -
this
+關注
關注
0文章
5瀏覽量
3269
發布評論請先 登錄
相關推薦
淺談C/C++里的指針
MATLAB代碼轉c++封裝dll供labview調用
為什么使用指針?C++中的“指針”
如何從C轉向C++ Effective C++ PDF中文版教材免費下載
C++程序設計教程之指針的詳細資料說明
![<b class='flag-5'>C++</b>程序設計教程之<b class='flag-5'>指針</b>的詳細資料說明](https://file.elecfans.com/web1/M00/89/31/o4YBAFyKC8OATT1oAABigeAsLNQ316.png)
C++的引用和指針
C語言 / C++基礎面試知識大集合
![<b class='flag-5'>C</b>語言 / <b class='flag-5'>C++</b>基礎面試知識大集合](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
C++智能指針的底層實現原理
![<b class='flag-5'>C++</b>智能<b class='flag-5'>指針</b>的底層實現原理](https://file1.elecfans.com/web2/M00/AD/39/wKgaomVMfHSAZBCSAAB3A1nxyK8110.jpg)
評論