C++ 虚基类,二义性问题
#include"iostream.h"
class A
{
public:
void fun(){cout<<"A::fun()"<<endl;}
};
class B:public A
{
public:
void fun(){cout<<"B::fun()"<<endl;}
};
class C:public B
{
public:
void fun(){cout<<"C::fun()"<<endl;}
};
void f(A *p)
{p->fun();}
main()
{
A a;
B b;
C c;
A *p;
p=&a;
f(p);
p=&b;
f(p);
p=&c;
f(p);
}
这里面 有三个类都有fun()到底执行 p=&b;
f(p);
p=&c;
f(p);
这个的时候为什么B和C类的fun() 都不能输出了?