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-07-05feign默认connecttimeout和readtimeout是多少-icode9专业技术文章分享
- 2024-07-05idea控制台,日志太多,导致部分想看得日志被刷走 搜不到-icode9专业技术文章分享
- 2024-07-05The server selected protocol version Tls10 is not accepted by client preferences [TLs12]-icode9专业技术文章分享
- 2024-07-05怎么清理项目缓存-icode9专业技术文章分享
- 2024-07-04安装 Eyoucms详细图文教程-icode9专业技术文章分享
- 2024-07-04ueditor 复制文章时,图片的链接是一个下载图片地址,该如何处理?-icode9专业技术文章分享
- 2024-07-04怎样判断host有没有对wordpress有缓存呢-icode9专业技术文章分享
- 2024-07-04具有编译功能的系统make后,无法ssh连接-icode9专业技术文章分享
- 2024-07-04make后如何升级ssh-icode9专业技术文章分享
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享