C++筆記:類中的this指針

在 C++ 中,this 是一個指針而不是對象本身。這和 C# 等語言不同。在 C# 中,this 是對象本身的_別名_。

public class test
{
   public test()
    {
        this.do(); //此處的 this 代表對象本身的別名。
    }
   private void do()
    {
        //To do.
    }
}

而在 C++ 中,它是本身的指針。C++ 中由於類遵循了必須先定義再使用的原則,所以在一個類中無法返回一個類自身的類型,這是因為此時這個類還是一個不完全類型(類函數作為類的成員還沒有定義完全)。

在一個const成員函數中只能返回 const 類名& 類型,否則,可以返回 類名& 類型。

有的時候,我們希望使用者調用的成員函數返回 const 類名& 類型,但是卻在某些情況下必須返回非 const 類型,此時可以使用重載來實現:

定義兩個相同函數,分別返回 const 和非 const 引用,那麼,通常情況下,編譯器認為 const 為更好匹配,但如果必須修改返回的類型,會自動匹配非 const 類型。

当前页阅读量为: