国产探花免费观看_亚洲丰满少妇自慰呻吟_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的內容放在公共位置處


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

圖片精選

主站蜘蛛池模板: 定陶县| 巴林左旗| 绵阳市| 珠海市| 宁夏| 灵武市| 陇川县| 贵阳市| 保靖县| 漠河县| 西峡县| 车险| 通河县| 陵水| 二连浩特市| 轮台县| 灵台县| 印江| 崇信县| 安泽县| 米易县| 华坪县| 渭南市| 云安县| 玛多县| 仙居县| 淮安市| 陇川县| 丰原市| 阆中市| 青岛市| 岑溪市| 韶山市| 鄂伦春自治旗| 左权县| 天气| 琼中| 东明县| 辉南县| 烟台市| 涡阳县|