代碼:
#include<iostream>
using namespace std;
class A
{
public:
int n;
};
class B:public A {}; // 聲明A爲公有繼承的虛基類
class C:public A {}; // 聲明A爲公有繼承的虛基類
class D:public B,public C
{
public:
int getn() {return B::n;}
};
int main()
{
D d;
d.B::n=10;
d.C::n=20;
cout<<d.getn()<<endl;
return 0;
}
運行結果:
學習心得:
d.B::n=10;是引用d對象中的基類B的數據成員n,d.C::n=20;是引用d對象中的基類C的數據成員n,因爲類B和類C都聲明A爲公有繼承的虛基類,所以d.getn()是調用類A的成員函數,然後return B::n;輸出類B的數據成員n。