このような仮想純粋な変数とゲッター/セッターを持つ抽象クラス AUnit があります
class AUnit {int var... int getVar() const = 0 ... }
コンストラクタとデストラクタを除くすべてのデータは保護されています。
ベルセルクとタンクが子供の頃にこんな風に
class Berserk : public AUnit
{
...
private:
int getVar() const;
彼らの .cpp に、ゲッターとセッターのコードを書きます。特にない。
しかし、私はこのような別のクラス(たとえばfoo)を持っています
class Foo : public Berserk, public Tank
誰が Berserk または Tank のデータにアクセスする必要があるので、プライベート キーワードを protected に変更しました。エラーは次のとおりです。
Tank.hpp:36:25: erreur: ‘virtual int Tank::getY() const’ is protected
error inside the context
最初に、AUnit ゲッターを使用してデータにアクセスしようとしましたが、仮想の純粋で抽象的な概念が原因で、AUnit の getType を非純粋でパブリックに渡した後、AUnit を実際の型で再解釈_キャストすることを考えました。まだ機能していません。以前にお話ししたスキームです。
それは単なる古典的な遺産です。何か助けてもらえますか?