看看这个多重继承的问题,也许对你有帮助
源文件:
#include "stdafx.h"
#include "iostream.h"
class A
{
public:
virtual int ax()=0;
virtual int ay()=0;
};
class X:public A
{
public:
virtual int xx()=0;
virtual int xy()=0;
};
class B
{
public:
virtual int bx()=0;
virtual int by()=0;
};
class C:public X,public B
{
public:
virtual int ax(){cout<<"ax function"<<endl;return 0;}
virtual int ay(){cout<<"ay function"<<endl;return 0;}
virtual int xx(){cout<<"xx function"<<endl;return 0;}
virtual int xy(){cout<<"xy function"<<endl;return 0;}
virtual int bx(){cout<<"bx function"<<endl;return 0;}
virtual int by(){cout<<"by function"<<endl;return 0;}
};
int main(int argc, char* argv[])
{
void *pa=static_cast<B*>(new C);
((A*)pa)->ax();
((A*)pa)->ay();
return 0;
}
输出:
bx function
by function