多重継承を使用して、開発中の複雑な階層を解決しようとしています。状況は次のとおりです。
class A {
virtual void foo();
}
class B {
virtual void foo();
}
class C : public B {
}
class D : public A, public C {
void foo() { ... }
}
class ClientClass {
void method() {
A *a = new D();
a->foo();
}
私が疑問に思うのは、最終的にはD1つの機能だけになるのでしょうか。foo()メソッドは両方の親で仮想であるため、同じものにコリメートする必要があるため、私はそれについて考えていますが、Javaから来たという理由だけでこれを薄くし、C++では異なる可能性があると感じています。わからない、またはただのため、仮想関数foo()を2回宣言する必要があります。これは私が守りたい要件です。ClientClassBCA
編集:とが純粋な仮想foo()である場合でも、同じ答えが当てはまりますか?(例)AB= 0