第十二週閱讀程序(4):多重繼承

代碼:

#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。

發佈了262 篇原創文章 · 獲贊 3 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章