2012-12-07 163 views
0

很抱歉,如果它一個微不足道的問題:澄清`this`關鍵字

實現1:

class Foo 
{ 
    protected: int bar; 

    public: Foo(int bar) 
     { 
     this->bar =bar; 
     } 
}; 

實施2:

request for member ‘x’ in ‘this’, which is of pointer type ‘Foo* const’ (maybe you meant to use ‘->’ ?)

class Foo 
{ 
    protected: int bar; 

    public: Foo(int bar) 
     { 
     this.bar =bar; 
     } 
}; 

從實施2輸出

所以this是一個指針,this問題有語法錯誤代碼

+1

這是基本原理 - (原始)指針只能用於 - >',而不能用'.'。 –

+1

僅供參考 - ''C++'&'C#'是兩種不同的語言。 – user93353

+0

我來自Java。有些東西在翻譯中丟失了 @ user93353該代碼被標記爲C++ && C#。我的壞雖然 – aiao

回答

6

你指的是這個問題包含了C#編寫的,而不是C++代碼示例。是的,在C++中,this是一個指針,必須取消引用才能訪問它指向的對象的任何成員。

+0

抱歉,它被標記爲C++,所以假定它們將是相同的。 Thanx – aiao

+0

其實這也是C#中的一個指針,但C#已經有了一種自動解引用:) – BlackBear

+0

@BlackBear謝謝,我不知道任何C#。我認爲我的編輯現在沒有提供有關C#的任何信息。 –