2010-03-08 4 views
1

상속을 사용하여 같은 이름의 멤버에 액세스하는 방법에 대한 질문이 있습니다. 예를 들어, 예상속에서 같은 이름의 멤버에 액세스하는 방법

class Base { 

public: 
int i; 

}; 
class Derived1 : public Base { 

    public: 
    int i; 

    // how to access the i in the base class here? 
}; 

int main() { 

    Derived1 d; 
    cout<<d.i;       //which is it is? 

    //how to access the different i here? 

} 

답변

10

d.i는 파생 클래스에서 i을 의미합니다.

당신은 기본 클래스 이름으로 정규화하여 기본 클래스 i를 참조 할 수 있습니다 : 일반적으로

d.Base::i 

,이 회원은 기본 클래스의 멤버와 같은 이름을 갖는 클래스를 파생 한 나쁜 생각 .

+0

+1 질문에 답변하고 일반적으로 그렇게하는 것이 좋지 않다고 지적하면서 +1. –

관련 문제