国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c++ 之菱形繼承

2019-11-08 19:53:09
字體:
來源:轉載
供稿:網友

1.什么是菱形繼承

   倆個子類繼承同一個父類,而又有子類同時繼承這倆個子類,如下圖所示;

   

#include <iostream>#include <windows.h>using namespace std;class AA{public:	int _aa;};class BB:public AA{public:	int _bb;};class CC:public AA{public:	int _cc;};class DD:public BB,public CC{public:	int _dd;};int main(){    DD d;	d.BB::_aa = 0;	d.CC::_aa = 1;	d._bb = 2;	d._cc = 3;	d._dd = 4;    system("pause");	return 0;}

2.菱形繼承帶來二義性和數據冗余的問題

菱形繼承對象模型

3.虛繼承解決菱形繼承帶來的問題

#include <iostream>#include <windows.h>using namespace std;class AA{public:	int _aa;};class BB:virtual public AA{public:	int _bb;};class CC:virtual public AA{public:	int _cc;};class DD:public BB,public CC{public:	int _dd;};int main(){    DD d;	d.BB::_aa = 0;	d.CC::_aa = 1;	d._bb = 2;	d._cc = 3;	d._dd = 4;    system("pause");	return 0;}

虛繼承對象模型

在這里,BB,CC保存的不再是AA的內容,而是偏移地址,把AA的內容放在公共位置處


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 固阳县| 安阳县| 酒泉市| 克山县| 海丰县| 交城县| 仁化县| 洛扎县| 皮山县| 长兴县| 宁南县| 栾城县| 牡丹江市| 蒙自县| 陇南市| 邛崃市| 榆中县| 襄垣县| 彰化县| 谷城县| 卢氏县| 宝应县| 淅川县| 玉树县| 清流县| 长白| 依安县| 衡东县| 宕昌县| 化德县| 柏乡县| 新巴尔虎右旗| 华亭县| 司法| 游戏| 麻栗坡县| 康保县| 璧山县| 博爱县| 余庆县| 潜山县|