关于多重继承和虚函数的问题。
Colo 2001-09-14 04:08:04 关于多重继承和虚函数的问题。
今日在写程序时遇到一个问题百思不得其解.源代码如下:
class CA
{
public:
virtual void GetAPoint(void** p) =0;
virtual void FunctionA()=0;
};
class CB
{
public:
virtual void GetBPoint(void** p) =0;
virtual void FunctionB()=0;
};
class CC:public CA,public CB
{
public:
void GetAPoint(void** p);
virtual void GetBPoint(void** p);
virtual void FunctionB();
virtual void FunctionA();
};
void CC::FunctionA()
{
AfxMessageBox("Function A");
}
void CC::FunctionB()
{
AfxMessageBox("Function B");
}
void CC::GetBPoint(void **p)
{
*p=(CB*)this;
}
void CC::GetAPoint(void **p)
{
*p=(CA*)this;
}
//问题出现在下面
CC c;
CA* p;
c.GetBPoint ((void**)&p);
p->FunctionA(); //什么它实际是进入到FunctionB()函数中?我调用的是FunctionA函数呀.