#include<iostream>usingnamespace std;classA{public:voidvf(){
cout<<"I come from class A"<<endl;}};classB:public A{};classC:public A{};classD:public B,public C{};intmain(){
D d;
d.vf ();// errorsystem("pause");return0;}
正确示范
#include<iostream>usingnamespace std;classA{public:voidvf(){
cout<<"I come from class A"<<endl;}};classB:virtualpublic A{};//使用虚继承,使得在派生类中只出现一次classC:virtualpublic A{};classD:public B,public C{};intmain(){
D d;
d.vf ();// okaysystem("pause");return0;}
什么叫做虚继承:重复基类,派生类间接继承同一基类使得间接基类(Person)在派生类中有多份拷贝,引发二义性。错误示范:#include<iostream>using namespace std;class A { public: void vf() { cout<<"I come from class A"<<endl; }};class B: public A{};class C: public A{};class D: public .