2013-02-24 5 views
0

저는 기본 클래스와 파생 클래스가 있습니다. 파생 클래스에서 기본 클래스의 보호 된 멤버에 액세스해야합니다. 그러나 이클립스는 데이터 멤버가 파생 된 클래스의 멤버 인 것처럼 상속 된 것을 고려하지 않고 데이터 멤버에 액세스 할 수 없습니다. 어떻게해야합니까?파생 클래스에서 기본 클래스의 보호 된 데이터 멤버에 액세스

class BaseClass { 
protected: 
static int a; 
int b; 
} 


class DerivedClass: public BaseClass {  
void SomeMethod {  
a=10; // cannot resolve symbol 
b=10; // cannot resolve symbol 
BaseClass::a=10; //does not complain 
BaseClass::b=10; //does not complain  
} 
} 
+1

으로 좋은 연습을, 나는 'this-> B' – Bingo

+0

이들를 사용하는 것이 좋습니다 수 있습니다 실제 컴파일러 오류 또는 이클립스 IDE에서 제공하는 이러한 구문/의미 오류 하이라이트는 무엇입니까? – Rich

+0

this->를 사용하면 DerivedClass의 데이터 멤버 만 자동 완성으로 표시됩니다. Base Class의 데이터 멤버를 볼 수 없습니다. – user592748

답변

3

나는 완전히 당신의 질문을 이해하지 수 있지만 구문 오류를 수정, 다음과 같은 작업을해야합니다 :

class BaseClass { 
protected: 
static int a; 
int b; 
}; // <-- Missing semicolon 

int BaseClass::a = 0; // Define static member 

class DerivedClass: public BaseClass {  
void SomeMethod() { // <-- Missing() 
a=10; 
b=10; 
} 
};// <-- Missing semicolon 
+0

예, 올바른 경우에도 구문, 작동하지 않습니다. Eclipse CDT를 사용하고 있습니까? – user592748

+0

아니요, 현재 없습니다. Eclipse CDT에서 자동 완성에 관한 질문입니까? –

+1

@ user592748 : "작동하지 않는다"는 것은 무엇을 의미합니까? 그것은 컴파일합니까? 아니면 편집인이 불평하는 것입니까? – Johnsyweb

관련 문제