私は今まで本当にやったことのないことをやろうとしています。私は基本的に3つのクラスを持っています。クラス A は純粋な仮想メソッドを持つ抽象クラスであり、クラス B はクラス A の仮想メソッドと同じ名前のメソッドを含む独自のクラスです。クラス C ですべてを結び付けようとしています。クラス B と A を C で継承し (多重継承)、クラス B のメソッドを使用してクラス A でそれらを実装します。このようにして、モジュラー アプローチを作成します。以下の例は、私のコードの非常に単純化されたバージョンです。
class A {
virtual int methodA() = 0;
virtual int methodB() = 0;
virtual int methodC() = 0;
};
class B { //B implements A.A() and A.B()
int methodA() { return 0; };
int methodB() { return 0; };
};
class C : A, B {
int methodC() { return 0; }; //C implements A.C()
};
クラス C をコンパイルできますが、C のクラスを構築しようとすると、 「次のメンバーのために抽象クラスをインスタンス化できません: int methodA()' : is abstract」new C()
というコンパイラ メッセージが表示されます。
クラスCで多重継承を介してクラスBを使用してクラスAを実装する方法はありますか?
編集:クラスBを具体的に保つことが望まれます。