c++ 之菱形继承
来源:互联网 发布:淘宝店现在生意怎么样 编辑:程序博客网 时间:2024/04/29 08:39
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的内容放在公共位置处
0 0
- 【C++】继承和多态之——菱形继承
- 【C++】菱形继承
- 【c++】菱形继承
- 【c++】菱形继承
- 【C++】继承(菱形继承)
- <c++>继承及菱形继承
- c++之菱形继承
- c++之菱形继承
- C++之菱形继承
- c++ 之菱形继承
- C++之菱形继承
- 【C++】菱形继承与虚拟菱形继承的对比分析
- C++:菱形继承和虚拟继承
- 《C++多继承之菱形继承》
- (C++)继承、菱形继承和虚继承的那些事儿
- 【C++】菱形虚拟继承(内存布局)
- 【c++】菱形虚拟虚拟继承模型探索
- C++: 虚表和菱形虚拟继承
- MySQL EXPLAIN
- 2017 WHUWT Day3 (Div. 2) (贪心 DP //待更新
- IOCP相关梳理
- Leetcode 169 - Majority Element(Moore投票算法)
- android Android性能优化之如何避免Overdraw
- c++ 之菱形继承
- WCF之客户端
- 归并算法
- 3.为Android构建变种版本
- redis基本结构(3)------列表(list)
- 【年总】2016的一些事
- VTK Example代码编译运行
- matlab绘制海洋图
- Python爬虫爬取糗事百科热文