次のシナリオがあります。
class RenderObject {
public:
virtual void sendToGPU() = 0;
virtual void removeFromGPU() = 0;
};
class Object3D : public RenderObject {
public:
virtual char getType() = 0;
};
class IGroup : public RenderObject {
public:
void sendToGPU(); // implementation of RenderObject's virtual method
void removeFromGPU(); // implementation of RenderObject's virtual method
};
class Group : public Object3D, public IGroup {
public:
char getType(); // implementation of Object3D's virtual method
};
Group クラスは RenderObject を 2 回継承しています。多重継承でよくある問題であることは知っていますが、初めて直面するので、解決方法が本当にわかりません。よくある問題だとわかっていても、親の 1 つ (IGroup) での以前の実装を考慮した解決策を見つけることができませんでした。
この言語の仕組みがどのように機能するかを説明したソリューションをいただければ幸いです。