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