2012-12-07 2 views
0

미안해 경우 사소한 질문 :대한 설명

구현 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 ‘->’ ?) : 구현 2에서

class Foo 
{ 
    protected: int bar; 

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

출력

그래서 this은 포인터이고 this 질문에 문법 오류가 있습니다.

+1

이것은 근본적인 것입니다. - (원시) 포인터는'-'만 사용할 수 있고'.'는 사용할 수 없습니다. –

+1

FYI -'C++'&'C#'는 2 개의 다른 언어입니다. – user93353

+0

자바에서 왔습니다. 번역에서 잃어버린 부분이 있습니다. @ user93353 코드에 C++ && C# 태그가 지정되어 있습니다. – aiao

답변

6

당신이 말하는 질문은 C++이 아닌 C#로 작성된 코드 샘플을 포함하고 있습니다. 예, C++에서 this은 포인터이며 포인터가 가리키는 객체의 모든 구성원에 액세스하려면 역 참조해야합니다.

+0

C++ 태그가 붙어있어 죄송합니다. Thanx – aiao

+0

사실 이것은 C#의 포인터이기도하지만 C#은 일종의 자동 역 참조를 가지고 있습니다 :) – BlackBear

+0

@BlackBear 고마워요, 저는 어떤 C#도 모르겠습니다. 내 편집이 C#에 대해 아무 것도 제안하지 않는다고 생각합니다. –