2
私は長い間、これを行うためのきれいな方法を模索しています。私の問題では、共通の親を共有していないが、それぞれが同じ名前のいくつかのメソッド(A.doSomething、B.doSomething、C.doSomething)を持つ3つのクラスが存在します。したがって、同じ関数シグネチャを持つクラスDは、Aから継承し、メソッドdoSomething()を使用すると、BまたはCを継承するEに「同じに見える」ことになります。この問題で複数の継承階層
class Base {
public:
void myMethod(void) { doSomething(); }
};
class Independent {
public:
doSomething();
};
clase Derived : public Base : public Independent {
(...)
};
int main(void) {
Derived *derivedObject = new Derived();
derivedObject->myMethod();
}
、タイプ「独立」のオブジェクト私は変更することはできませんライブラリで提供されています。ここでは
は私が行うことができるようにしたいのですが何のスケッチです。後で継承されるメソッドを使用する基本クラスを定義したいと思います。あいまいなコンパイルをせずに仮想継承を使用してこれを行う適切な方法を見つけることができませんでした。
問題をもう少し詳しく説明できますか?そのコードスニペットには「doSomething」というメソッドが1つしかありませんが、説明に3つのクラスがあり、「myMethod」メソッドの対象となるものについてはコメントしません。 –