当前位置: 首页 > news >正文

C++菱形继承问题

总结:

  • 菱形继承带来的主要问题是子类继承两份相同的数据,导致资源浪费以及毫无意义
  • 利用虚继承 virtual 可以解决菱形继承问题
#include <iostream>
#include <string>
using namespace std;
class Animal
{
public:int m_Age;
};//继承前加virtual关键字后,变为虚继承
//此时公共的父类Animal称为虚基类
class Sheep : virtual public Animal {};
class Tuo : virtual public Animal {};
class SheepTuo : public Sheep, public Tuo {};void test01()
{SheepTuo st;st.Sheep::m_Age = 100;st.Tuo::m_Age = 200;//当菱形继承,两个父类拥有相同的数据,需要加以作用域区分cout << "st.Sheep::m_Age = " << st.Sheep::m_Age << endl;cout << "st.Tuo::m_Age = " << st.Tuo::m_Age << endl;cout << "st.m_Age = " << st.m_Age << endl;//这份数据我们知道,只有一份就可以,菱形继承导致数据有两份,资源浪费
}int main() {test01();system("pause");return 0;
}
http://www.lryc.cn/news/236558.html

相关文章:

  • 第20章 数据库编程
  • PS学习笔记——初识PS界面
  • JDBC,Java连接数据库
  • java智慧校园信息管理系统源码带微信小程序
  • 智能电销机器人好做吗?ai机器人有没有用?
  • 吴恩达《机器学习》9-1:代价函数
  • 代码随想录算法训练营第五十九天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
  • mybatisPlus的简单使用
  • vue+element实现多级表头加树结构
  • internet download manager2024中文绿色版(IDM下载器)
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • markdown 公式编辑
  • 20231117在ubuntu20.04下使用ZIP命令压缩文件夹
  • IPKISS Tutorials 1------导入 pdk
  • 使用ChatGPT进行数据分析案例——贷款数据分析
  • 【数字图像处理】Gamma 变换
  • ChatGPT + DALL·E 3
  • 【AI视野·今日Robot 机器人论文速览 第六十三期】Thu, 26 Oct 2023
  • 测试Bard和ChatGPT关于双休的法规和推理
  • py查询第三方库的路径
  • LeetCode(16)接雨水【数组/字符串】【困难】
  • Kotlin 知识体系
  • 深度学习之基于YoloV5-Pose的人体姿态检测可视化系统
  • 为什么Go是后端开发的未来
  • Linux输入设备应用编程(键盘,按键,触摸屏,鼠标)
  • 【Axure教程】滑动内容选择器
  • vite+vue3使用@路径,报错处理
  • [开源]基于 AI 大语言模型 API 实现的 AI 助手全套开源解决方案
  • 2023年中国中端连锁酒店分类、市场规模及主要企业市占率[图]
  • mac下vue-cli从2.9.6升级到最新版本