기본 클래스에서 오버로드 된 메서드와 private/protected로 상속 된 파생 클래스가 있다고 가정합니다.기본 클래스 오버로드 선언 액세스 방법
- 오버로드 된 메서드의 원래 액세스 수준 중 하나만 복원 할 수 있습니까?
- GCC 4.4.0에서 나는 기본 접근법을 보호 된 접근법으로 놓고 개인 접근을 사용하여 상속받습니다. 공개 수준으로 액세스 수준을 복원하려고 시도하면 작동합니다! 이것이 어떻게 작동하는 것입니까? 또는 컴파일러의 버그입니까? 내 이해를 위해 액세스 수준 복원은 회원의 액세스 수준을 승격 또는 강등하는 데 사용할 수 없어야합니다.
코드 :
class base {
public:
void method() {}
void method(int x) {}
protected:
void method2() {}
};
class derived : private base {
public:
base::method; // Here, i want to restore only the none parameterized method
base::method2; // method2 is now public??
};
BTW-는'base :: method'를 사용하는 것과 정확히 같은'base :: method'와 같은 선언입니까? – Kos
@Kos, 네, 그렇지만 C++ 0x에서'base :: method;'라고 말하는 것은 더 이상 유효하지 않습니다. n3225 초안에서 제거되었습니다. –