マルチ継承の場合、複数のベースクラスに同じ型の虚関数が存在しますが、どうすればいいですか?



#include "stdafx.h" #include<iostream> using namespace std; class A{ public: virtual void show(){ cout<<"in classA"<<endl; } virtual ~A(){} }; class B{ public: virtual void show(){ cout<<"in classB"<<endl; } virtual ~B(){} }; class MidA:public A{ public: virtual void realshowA() = 0; virtual void show(){ realshowA(); } // virtual ~MidA(){} }; class MidB:public B{ public: virtual void realshowB() = 0; virtual void show(){ realshowB(); } // virtual ~MidB(){} }; class Derive :public MidA,public MidB{ public: void realshowA(){ cout<<"realshow in classA"<<endl; } void realshowB(){ cout<<"realshow in classB"<<endl; } // virtual ~Derive(){} }; int main(int argc,char * argv){ A *pa= new Derive; B *pb= new Derive; pa->show(); pb->show(); delete pa; delete pb; return 0; }

ベースクラスこうぞうかんすう2派生クラスとして宣言されたすべてのこうぞうかんすうも、かそうかんすうとして当然である.参考effective C++条項07