2013-11-21 3 views
2

는 클래스 variable.we이 할 수있다C++ 파생 클래스에서 기본 클래스 정적 멤버에 액세스하는 방법? 나는 C++ 정적 varibles.i 새로운 오전

#include <iostream.h> 
    class base  // base class 
{ 
    protected: 
    static int value; 
    }; 

int base::value=0; // static variable initalization 

class derived:public base 
{ 
    public: 
    get_variable(); 
    }; 

내가 정적 변수처럼 알고있는 파생 클래스 멤버 function.Example에서 기본의 정적 멤버에 액세스하는 방법을 모른다 개체에 바인딩되지 않은 클래스 이름을 사용하여 액세스 (내가 틀렸다면 수정하십시오.) .my 질문은 정적 변수에 액세스하는 파생 클래스 get_varible의 멤버 함수에서 정적 변수에 액세스하는 방법입니다.

+0

변수가 개인용이면 파생 클래스에서 액세스 할 수 없습니다. –

답변

1

파생 클래스의 멤버이므로 그대로 사용하십시오.

int derived::get_variable() 
{ 
    return value; 
} 
+1

변수는 비공개이지만 변수가 보호로 변경되면 –

+0

@Koren : 내 대답을 변경해야합니다. 그렇지 않으면 투표가 중단됩니다. 귀하의 의견에 감사드립니다. – David

2

당신은 기본 클래스에 protectedprivate을 변경해야합니다. private static 변수는 base 클래스 내에서만 액세스 할 수 있습니다.

당신은 다음과 같은 파생 클래스에서 변수에 액세스 할 수 있습니다
0

:

당신은 변수가 정적이며이 보호하고 있기 때문에 당신이 그것을 액세스 할 수 있기 때문에 기본 클래스의 이름을 사용할 필요가
int derived::get_variable() 
{ 
    return base::value; 
} 

.

설명한대로 herehere과 같이 특정 상황에서 파생 클래스의 보호 된 멤버에 대한 액세스를 허용하지 않는 추가 검사는 정적 멤버에는 적용되지 않습니다.

관련 문제