位置: 编程技术 - 正文

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

  • 一次性劳务所得税怎么算
  • 进口商品需要缴纳VAT税吗
  • 老板故意拖欠税款怎么办
  • 单位内部食堂如何做账务处理
  • 一般纳税人劳务公司可以开3%的发票吗
  • 小规模租金可以按1%
  • 餐饮业申请发票
  • 投资款算什么会计科目
  • 应付票据和应付账款有什么区别
  • 劳动生产总值和总产值是一回事吗
  • 没有纸质机票电子行程单电子版可以报销吗
  • 增值税期末留抵退税政策实施力度
  • 包工包料和包清工
  • 机票电子行程单和发票的区别
  • 购原材料红字发票会计分录怎么写?
  • 去年已支付的费用怎么查
  • 其他应付款能转收入么
  • 小规模纳税人开具1%增值税专用发票可以抵扣吗
  • 子公司注销欠母公司借款怎么办
  • 总公司发工资子公司代缴个税
  • 销售中有运费收入吗
  • 行政事业单位培训伙食补助报销规定
  • 企业财产保险费率的影响因素
  • 免税企业以前年收入多少
  • 海关进口增值税专用缴款书是发票吗
  • 购买可供出售金融资产
  • 个人付款可以开发票吗
  • 小规模纳税人当月超过500万的部分怎么申报
  • 个人租车所得交什么税
  • 消费税组成计税价格成本利润率
  • 流转税通俗举例
  • 企业零星支出是否需要发票
  • 契税和印花税入哪个科目
  • 二手车抵押银行贷款
  • 财务报表申报完可以修改吗
  • a107040减免所得税优惠明细表2020
  • 华为手机哪一款好用性价比高
  • 员工退回多发的工资,是上缴国库还是财政专户
  • 厂区地面硬化的意义
  • 本月计提增值税的金额是怎么得来的
  • pytorch模型转tflite
  • 持有至到期投资在资产负债表怎么填
  • 用友标准版怎么反结账
  • 计算机与自动化的关系
  • 分期收款销售账务处理及税务处理
  • 融资租赁印花税怎么缴纳
  • 企业持有待售的固定资产,应当对其预计
  • 增值税专用发票和普通发票的区别
  • 加收税收滞纳金属于行政处罚吗
  • 期权增发是什么行业
  • access如何设置宏的功能
  • 本月盈利本年亏损要做分录吗
  • 公司注销了,账务是不是可以销毁了
  • 受托方代销商品会计分录
  • 价内税与价外税的计算公式
  • 购买税控盘的费用怎么抵减
  • 淘宝卖家运费险为什么越来越贵
  • 小企业如何建立党支部
  • sql server数据
  • 数据库更新数据
  • windows modules installer占用磁盘高
  • 微软发布新系统
  • 苹果14pro max价格
  • win8.1应用
  • remind32.exe - remind32是什么进程 有什么用
  • windows7开机
  • windows8怎么使用
  • 在linux中使用v2ray
  • shell 多个文件合并
  • 木瓜电子
  • Android使用的方式来管理
  • js如何输出页面内容
  • 国企9000扣完五险一金
  • 税务催告期限多久
  • 卷烟批发环节的消费税一箱150元
  • 税务协查工作亮点
  • 国考报四川的去哪考
  • 税服领花规范照片
  • 手撕发票查询真伪平台
  • 银川买的新房契税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设