C++//菱形继承 //俩个派生类继承同一个基类 //又有某个类同时继承俩个派生类 //成为 菱形继承 或者 钻石 继承//+解决
2021/8/8 12:36:28
本文主要是介绍C++//菱形继承 //俩个派生类继承同一个基类 //又有某个类同时继承俩个派生类 //成为 菱形继承 或者 钻石 继承//+解决,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 //菱形继承 2 //俩个派生类继承同一个基类 3 //又有某个类同时继承俩个派生类 4 //成为 菱形继承 或者 钻石 继承 5 6 #include <iostream> 7 #include <string> 8 using namespace std; 9 10 //动物类 11 12 class Aninmal 13 { 14 public: 15 int m_Age; 16 }; 17 //利用虚继承 解决菱形继承的 问题 18 // //继承之前 加 virtual vbptr 虚基类指针 19 // Aninmal类称为 虚基类 20 //羊类 21 class Sheep :virtual public Aninmal 22 { 23 24 }; 25 26 27 28 //驼类 29 class Tuo :virtual public Aninmal 30 { 31 32 }; 33 34 //羊驼类 35 class SheepTuo :public Sheep, public Tuo 36 { 37 38 }; 39 void test01() 40 { 41 SheepTuo st; 42 43 st.Sheep::m_Age = 18; 44 st.Tuo::m_Age = 20; 45 //当菱形继承,俩个父类拥有相同的数据,需要加以作用域区分 46 cout << "st.Sheep::m_Age = " << st.Sheep::m_Age << endl; 47 cout << "st.Tuo::m_Age = " << st.Tuo::m_Age << endl; 48 cout << "st.m_Age = " << st.m_Age << endl; 49 50 //这份数据 我们知道 只有一份就可以 菱形继承导致数据两份 资源浪费 51 52 53 54 } 55 int main() 56 { 57 58 test01(); 59 60 61 system("pause"); 62 63 return 0; 64 65 }
这篇关于C++//菱形继承 //俩个派生类继承同一个基类 //又有某个类同时继承俩个派生类 //成为 菱形继承 或者 钻石 继承//+解决的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Nacos多环境配置学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos配置中心学习入门指南
- 2024-12-27Nacos配置中心学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos初识学习入门:轻松掌握服务发现与配置管理
- 2024-12-27Nacos初识学习入门:轻松掌握Nacos基础操作
- 2024-12-27Nacos多环境配置学习入门