2 つの基本クラスから継承するクラスがあるとします (多重継承)。ベースclass Aは抽象的で、純粋な仮想関数を宣言しfoo、他のベースはまったく同じシグネチャのclass B関数を宣言および実装します。foo
struct A
{
virtual void foo(int i) = 0;
};
struct B
{
virtual void foo(int i) {}
};
struct C : public A, public B {};
派生したfoofrom baseの実装を使用したいと考えています。ただし、派生した関数をもう一度実装しないと、そのオブジェクトをインスタンス化できません (抽象化されたままです)。仮想継承は、ここでは予想どおり役に立ちません (また、共通の基本クラスがありません)。class Bclass Cfooclass Cclass Aclass B
同じコードを繰り返す必要がないように、foofromの実装を「インポート」する方法があるのだろうか。class Bclass C
上記の例はもちろんわざとです。fooで実装したい理由は、の実装class Bを派生させclass D : public Bて使用したいからです。継承が (主に) コードの再利用を目的としていないことはわかっていますが、それでもそのように使用したいと考えています。class Bfoo