C++ 類中的this指針

1. this指針的用處:

  一個對象的this指針並不是對象本身的一部分,不會影響sizeof(對象)的結果。this作用域是在類內部,當在類的非靜態成員函數中訪問類的非靜態成員的時候,編譯器會自動將對象本身的地址作爲一個隱含參數傳遞給函數。也就是說,即使你沒有寫上this指針,編譯器在編譯的時候也是加上this的,它作爲非靜態成員函數的隱含形參,對各成員的訪問均通過this進行。

2. this指針的使用:

一種情況就是,在類的非靜態成員函數中返回類對象本身的時候,直接使用 return *this;另外一種情況是當參數與成員變量名相同時,如this->n = n(不能寫成n = n)。

3. 類的this指針有以下特點:

1this只能在成員函數中使用。

全局函數、靜態函數都不能使用this.

2)由此可見,this在成員函數的開始前構造,在成員函數的結束後清除。

this指針存放在何處?堆、棧、全局變量,還是其他?

this指針會因編譯器不同而有不同的放置位置。


發佈了49 篇原創文章 · 獲贊 30 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章