나는 모든 데이터 보호에이C++ 보호 유산
class AUnit {int var... int getVar() const = 0 ... }
같은 가상 순수에서 변수의 getter/setter를 가진 추상 클래스 AUnit 있습니다.
나는 내가 getter 및 setter의 코드를 작성, 자신의 .cpp에서이class Berserk : public AUnit
{
...
private:
int getVar() const;
처럼 자식으로 광포와 탱크가 있습니다. 특별한 것은 없습니다.
내가 보호하여 개인 키워드 변경 광포 또는 탱크의 데이터에 액세스 할 필요가class Foo : public Berserk, public Tank
하지만이 같은 다른 하나 개의 클래스 (예를 들어, foo는) 이곳 오류는 다음과 같습니다
Tank.hpp:36:25: erreur: ‘virtual int Tank::getY() const’ is protected
error inside the context
우선, 나는 AUnit 게터로 데이터에 액세스하려고 시도했지만 가상의 순수하고 추상적 인 개념의 원인으로 인해 순수하지 않은 공개 모드에서 AUnit의 getType을 전달한 후 실제 형식으로 내 AUnit을 다시 해석하도록 생각했습니다. . 아직 작동하지 않는, 내가 이전에 말한 그 계획.
그건 그냥 고전적인 유산 일 뿐이에요. 제가 도와 드릴까요?
''Foo : public Berserk, public Tank''에서는 비공개 란 뜻인가요? – hivert
좀 더 설명해 주시겠습니까? 나는 당신의 '질문'과 당신의 문제에 대한 비전을 이해할 수 없다. – Khelben
[죽음의 다이아몬드] (http://en.wikipedia.org/wiki/Multiple_inheritance#The_diamond_problem)와 같은 소리가납니다. – reima