位置: 编程技术 - 正文

c++基础语法:虚继承(c++ 虚数)

编辑:rootadmin

虚继承 的概念的提出主要是为了解决C++多继承的问题,举个最简单的例子:上面的 liger.op() ;会报错,会提示模糊的成员变量,因为tiger和lion中都包含父类animal的op()操作。此时内存中的oneliger对象布局从低到高是下面这样的:1、animal的成员变量

2、继承tiger的成员变量 //包括 op()

3、继承lion的成员变量 / /也包括op()

4、liger本身的成员变量

PS: 对象在内存中的布局首先是如果有虚函数的话就是虚表,虚表就是指向一个函数指针数组的指针,然后就是成员变量,如果是普通继承则首先是最根父类的成员变量,然后是次父类成员变量,依次而来最后是本身的成员变量[虚继承相反],成员函数被编译成全局函数不存储在对象空间内,需要调用成员函数的时候,通过类名找到相应的函数,然后将对象的this指针传给函数:比如这样的代码 CTest test; test.print(); 编译器在内部将转换为:(伪代码) CTest test; CTest_print( &test ); // CTest的print函数转换为:CTest_print( CTest* const this); 所以这就和普通函数调用差别不大了实际应该是函数找到对象,即根据this指针

为了解决 上面多继承的问题,所以c++中提出了虚继承的概念,虚继承就是在子类中只保留一份父类的拷贝,拿上面的类子来说,就是“如果有一份父类的拷贝的话就用父类的拷贝,如果没有就加入一份拷贝” :此时liger对象在内存中的布局就变成了:4、animal的成员变量

3、继承tiger的成员变量 //包括 op()

2、继承lion的成员变量 //已经包含一份拷贝,所以 已经不包括op()

1、liger本身的成员变量

这样内存中就只有一份animal对象的拷贝,所以就不会存在模糊的问题;

推荐整理分享c++基础语法:虚继承(c++ 虚数),希望有所帮助,仅作参考,欢迎阅读内容。

c++基础语法:虚继承(c++ 虚数)

文章相关热门搜索词:c++虚函数详解,c++虚函数详解,c++虚函数菜鸟教程,c++虚函数作用及底层原理,c++虚方法的作用,c++虚函数菜鸟教程,c++虚函数菜鸟教程,c++虚函数菜鸟教程,内容如对您有帮助,希望把文章链接给更多的朋友!

Sqlserver 表类型和表变量介绍 表类型可以用在存储过程中,用于批量增加表类型定义:CREATETYPEdbo.SubCardTableastable([SC_ID][varchar](),[ZhuKaInfo_ID][varchar](),[Project_KeyName][varchar](),[SC_CardNum

SQL cursor用法实例 DECLARE@OldIdvarchar()DECLARE@CustomerIDvarchar()DECLAREMy_CursorCURSOR--定义游标FOR(selectCustomerID,oldidfromCustomerwhereArea='bj')--查出需要的集合放到游标中OPENMy_Cursor;--打

SQL中WHERE变量IS NULL条件导致全表扫描问题的解决方法 SET@SQL='SELECT*FROMCommentwith(nolock)WHERE1=1And(@ProjectIdsIsNullorProjectId=@ProjectIds)And(@ScoresisnullorScore=@Scores)'印象中记得,以前在做Oracle开发时,这种写法是会导致

标签: c++ 虚数

本文链接地址:https://www.jiuchutong.com/biancheng/347107.html 转载请保留说明!

上一篇:把excel表格里的数据导入sql数据库的两种方法(把excel表格里的文字复制到word)

下一篇:Sqlserver 表类型和表变量介绍(sqlserver表类型)

  • 同一商品税收分类编码不一样
  • 增值税发票查验平台怎么查询发票
  • 制造业税负率怎么计算
  • 社保怎么进行账单查询
  • 出口结汇必须要开票吗
  • 应交税费贷方有余额,怎么销账
  • 开票系统技术服务费在申报表哪里抵扣
  • 专用凭证和通用凭证的联系和区别
  • 酒店怎么合理规划管理
  • 长期股权抵消分录
  • 应收账款现金收回金额有限制嘛
  • 企业发生什么
  • 增值税专用发票几个点
  • 补充养老保险税前扣除政策
  • 企业所得说季报是季报填还是年底填?
  • 购买的装修样品怎么入账
  • 固定资产可以一次计入费用吗
  • 金融服务利息税率是多少
  • 研发费用的会计和税法的不同
  • 分户记账
  • 贷款公司利息收据怎么写
  • 跨年应收账款账务错误怎么调整
  • 进项税额已经认证抵扣了怎么处理
  • 电子商业承兑与银行承兑哪个好
  • 电脑怎么一键返回到桌面
  • 长期待摊费用账务处理包括哪两部分
  • 所得税税负率一般是百分比还是千分比
  • 开出去的普票可以用专票抵扣吗
  • cpu天梯图,最新
  • 捷波主板141m
  • window102020年最新版本
  • 直接人工分配按计时工资怎么分
  • 总包和分包是什么关系
  • php options
  • 最小的固态硬盘多大尺寸
  • PHP:disk_total_space()的用法_Filesystem函数
  • 外汇业务的核算ppt
  • 工程竣工的条件是什么
  • 凯恩kane
  • vite搭建项目
  • php面向对象优点,缺点
  • 现金流量表期初现金余额本年累计
  • 发票十万元版和百万元版
  • phpcms怎么修改模板风格
  • 代发工资怎么做
  • 其他权益工具投资
  • 什么不计入税金及附加
  • 房子是固定资产的好处
  • python如何反编译
  • mysql中事务的作用
  • 房地产企业年报数据
  • 应收账款计入营业收入
  • 甲公司购入一台不需要安装
  • 年度财务报表怎么作废
  • 减免的企业所得税怎么做账
  • 新会计准则贷款计提贷款减值准备的比例
  • 建筑行业怎么确认收入
  • 实报实销有补贴嘛
  • 商业承兑汇票过期了怎么办
  • 百旺金赋税盘怎么清卡
  • 汇兑损益是什么凭证类型
  • 主营业务收入包括哪些内容
  • 远程连接局域网内的电脑
  • win7快速切换到桌面
  • win10建行网银盾插上网页弹不出来
  • mac如何强制退出微信
  • 虚拟机linux使用
  • 电脑开机绿
  • linux系统添加新用户
  • win8怎样恢复系统
  • jquery动态设置css
  • html文件怎么用ie浏览器打开
  • 远程计算机的命令
  • javascript语言基础
  • javascript缓存
  • 税务局风险防控形成长远
  • 注销一般户需要基本户的开户许可证吗
  • 豫事办登录时密码叫重置什么原因
  • 公司有房屋租赁许可证吗
  • 税收是初次分配的手段
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设