位置: 编程技术 - 正文

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表类型)

  • 什么是抄报税证明
  • 医院要交什么费用
  • 公司注销所有者权益账面怎么处理
  • 定额备用金与非定额备用金的会计分录
  • 工会经费和工会会员会费
  • 红冲以后怎么做账
  • 电汇汇票和电汇的异同点
  • 新入职员工哪月交社保
  • 出差补贴计入工资总额吗
  • 利润表盈利结构分析
  • 小企业会计准则和企业会计准则的区别
  • 科目汇总表会计核算形式
  • 汽车的购置税可以不交吗
  • 盈余公积补亏什么科目
  • 经济法中企业营业收入包括哪些?
  • 企业出口收汇核销怎么处理?
  • 企业销售额达到多少交企业所得税
  • 清卡增值税申报比对不通过的原因
  • 销售苗木属于什么行业
  • 滴滴顺风车发票图片大全
  • 消费税征收范围包括
  • 安装工程发票怎么开
  • 初级备考计划表
  • 贴现利息计算器
  • 企业所得税汇算清缴操作流程
  • windowsserver2008r2
  • 抵押房产的保险能退吗
  • 阻止电脑系统更新设置在哪
  • 业务招待费税务筹划案例
  • linux怎么检查网络状态
  • php ffi 教程
  • 基建会计和建筑会计的区别
  • 出口商品要交增值税吗
  • framework4.0怎么打开
  • 小规模纳税人免税额度是多少
  • php ajax 实现
  • 人工智能科技向善
  • ls -all命令
  • vi操作命令进入编辑命令
  • tsop封装
  • phpcms使用教程
  • 增值税专用发票几个点
  • 企业对于预支工资的建议
  • 畜牧业科技公司
  • python condition
  • 帝国cms移动端
  • sqlserver实现分页查询
  • 享受残疾人增值服务的是
  • 定额备用金与非备用金
  • 怎么做掉公司账面库存100万
  • 定额转查账征收
  • 小规模纳税人公司注册条件
  • 废品损失是什么要素
  • 净水设备配件计算方法
  • 公司买东西算什么费用
  • 收付实现制下主营业务成本怎么算
  • 无形资产是当月计提折旧吗
  • sql做判断
  • 在sql server数据库中
  • Centos MySQL 5.7安装、升级教程
  • win7跟xp怎样连接局域网
  • centos下虚拟机
  • linux系统讲解
  • win7删除搜索历史记录
  • windows英文字体
  • mac safemode
  • mac怎么设置
  • mac上safari
  • nicconfigsvc.exe - nicconfigsvc是什么进程 有什么用
  • Linux利用sftp命令传输文件(极少数人知道的方法)
  • win8如何使用
  • win10声卡驱动正常但没声音怎么解决
  • Win7系统电脑开不开机怎么办
  • 简介怎么写
  • (转)Unity3D NGUI在UI上显示3D模型
  • vuex按需加载
  • javascript从入门到放弃
  • 很全面的成语
  • 如何查询自己公司的对公账号
  • 新四板企业哪里可以查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设