Posted on 2009-10-15 08:13
lantionzy 閱讀(1874)
評論(0) 編輯 收藏 引用 所屬分類:
C++ Primer
類的成員函數具有一個附加的隱含形參,即指向該類對象的一個指針。這個隱含形參命名為 this,與調用成員函數的對象綁定在一起。成員函數不能定義 this 形參,而是由編譯器隱含地定義。成員函數的函數體可以顯式使用 this 指針,但不是必須這么做。如果對類成員的引用沒有限定,編譯器會將這種引用處理成通過 this 指針的引用。
盡管在成員函數內部顯式引用 this 通常是不必要的,但有一種情況下必須這樣做:當我們需要將一個對象作為整體引用而不是引用對象的一個成員時。最常見的情況是在這樣的函數中使用 this:該函數返回對調用該函數的對象的引用。
在普通的非 const 成員函數中,this 的類型是一個指向類類型的 const 指針,可以改變 this 所指向的值,但不能改變 this 所保存的地址。在 const 成員函數中,this 的類型是一個指向 const 類類型對象的 const 指針。既不能改變 this 所指向的對象,也不能改變 this 所保存的地址。 不能從 const 成員函數返回指向類對象的普通引用。const 成員函數只能返回 *this 作為一個 const 引用。