位置: 编程技术 - 正文

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

  • 文化传媒公司的税种及税率
  • 所得税五个年度怎么算
  • 税收征管法实施细则全文最新
  • 家具厂投入多少钱
  • 资本公积不足冲减是什么意思
  • 电子发票限额多了怎么办
  • 工程结算会计科目及账务处理
  • 房地产企业预缴增值税如何申报
  • 免税进口的自用设备再销售时该怎么征税
  • 抽奖中的汽车需要交购置税吗
  • 每月末计提利息分录
  • 专项用途财政资金纳税调整规则
  • 赡养老人专项附加扣除可以是爷爷奶奶吗
  • 提供应税服务营改增的应税服务不包括什么
  • 增值税专票代码TZD0085什么意思
  • 公司发生的业务可以转让给子公司嘛?
  • 全年一次性奖金税收优惠政策2024
  • 债券的实际发行价格为什么
  • 服务费与劳务费税率的区别
  • 增值税专票销售额比对(非差额企业)
  • 认缴实收资本印花税什么时候交
  • 收取滞纳金是行政处罚吗
  • 城建税计税依据及税率
  • 工程管理咨询费计入什么科目
  • 企业的银行存款日记账属于
  • win7 bootmode
  • 建筑企业自持商是指
  • 发票金额大于报销金额违法吗
  • 现金流量套期的例子
  • vue2.0解决跨域问题
  • 纳税人转让不动产增值税征收管理暂行办
  • 2021前端面试题目100及最佳答案
  • 非货币性资产投资的会计处理
  • php exec python
  • 保姆级官方yolov7的训练自己的数据集以及项目部署
  • 城建税减半吗
  • 保险公司发票能在异开吗
  • 客户倒闭预收款怎么处理
  • 商会年会活动策划方案模板
  • 物流公司挂靠车辆怎么做账
  • 纳税申报系统里怎么填写
  • 织梦可以放两个模板吗
  • windows安装步骤总结
  • 出租房产怎么交房产税
  • 个人独资企业增值税免征额
  • 公司租用个人房子凭收据可以入账吗
  • 税控系统技术维护费全额抵扣分录
  • 合伙企业的合伙人有下列情形中的当然退伙
  • ce认证所需的模块有哪些
  • 诉讼费应计入什么会计科目
  • 误餐补助标准国家规定
  • 其他应付款在借方表示什么
  • 银行承兑汇票怎么做账
  • 管理会计运用什么软件
  • 如何进行企业建账
  • debian9.6安装教程
  • winxp系统怎么连接网络
  • 比较常见的别墅户型
  • windows无法打开添加打印机
  • dns_config_service_win
  • 电脑win7怎么样
  • xp停在windows界面
  • mac os如何安装软件
  • centos6.5忘记密码
  • win8查看系统版本
  • python有没有翻译库
  • opengl arb
  • dos命令显示时间
  • python 数据处理 pdf
  • Node.js中的全局对象有
  • shell脚本运行linux命令
  • python程序员必读书籍
  • android开发和java开发区别
  • 贵阳国家高新技术产业开发区管理委员会
  • 地方税务局发票查询
  • 一般纳税人资格查询
  • 企业滞纳金怎么算 计算公式
  • 国税巡察反馈意见建议
  • 营业执照增加项目怎么办理
  • 2021年税务高雅春联带横批
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设