位置: 编程技术 - 正文

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

  • 应交增值税一般纳税人的账怎么做
  • 个人开具服务费发票税率
  • 外币借款本金的汇兑差额
  • 房租租赁房产税由哪方缴纳
  • 预收账款借方和贷方表示什么
  • 员工旅游费怎么记账
  • 银行开户许可证图片
  • 零星采购不要发票可以吗
  • 电子承兑逾期提示付款说明怎么写
  • 小微企业的增值税怎么算
  • 小微企业免交增值税,月末结转到营业外收入吗
  • 进口设备的重置成本包括( )
  • 汇票贴息入什么科目
  • 增值税专用发票的税率是多少啊
  • 贷款损失准备金怎么计算
  • 拍卖书画收入如何交税
  • 电子承兑汇票是到期日前10天提示承兑吗
  • 工程技术服务费和技术服务费
  • 怎么看公司行不行
  • 上海个人住房房产税
  • 资产损益表怎么看
  • 费用报销单如何粘贴票据
  • 公司购买理财产品计入什么科目
  • 社保打入其他公司代扣分录怎么做?
  • 上月留抵的增值税在哪查询
  • 包吃伙食费会计分录
  • 电脑温度过高会怎么样
  • 找不到powershell.exe文件
  • 费用票可以抵扣什么税
  • 增值税四个税种
  • 企业清算有哪些类型
  • 谈谈你对人民美好生活的理解
  • sccenter.exe - sccenter是什么进程 有什么用
  • 事业单位利息收入
  • 设置浏览器显示网络异常
  • 电梯的维护保养应当由谁负责
  • 超限量发票申请下来后怎么操作
  • 购买税盘的服务费全额抵扣怎么操作
  • 正在求偶的凤头卡拉鹰,美国德克萨斯州 (© Alan Murphy/Minden Pictures)
  • 怎样创建一个网站
  • 微信小程序实现文件上传
  • 机器学习——图像分类
  • 分类信息有哪些网站
  • 合并报表的会计主体
  • 职工教育经费支出比例
  • sql数据库check 约束代码怎么设置
  • 房地产老项目简易计税方法
  • 什么叫生活补助
  • 增值税直接计算法间接计算法举例
  • 员工垫付的费用没有发票,放在工资里可以吗
  • 负债类会计科目新增科目包括
  • 厂家给经销商的活动方案怎么写
  • 发工资的是会计还是出纳
  • 月末结转销售会计分录
  • 房屋租赁合同印花税谁交
  • 缴纳上月附加税怎么做分录
  • 购房发票可以开专票
  • 单位车辆保险费
  • 固定资产净额怎么计算公式
  • sqlserver跨库查询sql回路问题
  • mysql里面的数据类型
  • win8怎么没有我的电脑
  • mac电脑虚拟机怎么安装
  • 如何设置无线网密码
  • c1.exe是什么
  • linux各种命令
  • win7怎么设置u盘启动为第一启动项
  • Android Bound Service(二) ----- Using AIDL
  • android新手入门
  • 虚拟主机 推荐
  • python语言怎么用
  • c# 查找字符串
  • js控制横向滚动条
  • javascript的几种数据类型
  • 土地增值额未超过20%
  • 国家税务局2017年11号
  • 20年灵活就业人员社保新标准
  • 税务局全年绩效分析报告
  • 为什么非贸易付不了款呢
  • 利润表中所得税费用包括
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设