c++中超级详细的一些知识,新手快来

目录

2.文章内容简介

3.理解虚函数表

3.1.多态与虚表

3.2.使用指针访问虚表

4.对象模型概述

4.1.简单对象模型

4.2.表格驱动模型

4.3.非继承下的C++对象模型

5.继承下的C++对象模型

5.1.单继承

5.2.多继承

5.2.1一般的多重继承(非菱形继承)

5.2.2 菱形继承

6.虚继承

6.1.虚基类表解析

6.3.虚拟菱形继承

7.一些问题解答

7.1.C++封装带来的布局成本是多大?

7.2.下面这个空类构成的继承层次中,每个类的大小是多少?


有两个概念可以解释C++对象模型:

  1. 语言中直接支持面向对象程序设计的部分。
  2. 对于各种支持的底层实现机制。

直接支持面向对象程序设计,包括了构造函数、析构函数、多态、虚函数等等,这些内容在很多书籍上都有讨论,也是C++最被人熟知的地方(特性)。而对象模型的底层实现机制却是很少有书籍讨论的。对象模型的底层实现机制并未标准化,不同的编译器有一定的***来设计对象模型的实现细节。在我看来,对象模型研究的是对象在存储上的空间与时间上的更优,并对C++面向对象技术加以支持,如以虚指针、虚表机制支持多态特性。

2.文章内容简介

这篇文章主要来讨论C++对象在内存中的布局,属于第二个概念的研究范畴。而C++直接支持面向对象程序设计部分则不多讲。文章主要内容如下:

  • 虚函数表解析。含有虚函数或其父类含有虚函数的类,编译器都会为其添加一个虚函数表,vptr,先了解虚函数表的构成,有助对C++对象模型的理解。
  • 虚基类表解析。虚继承产生虚基类表(vbptr),虚基类表的内容与虚函数表完全
  • 155
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 126
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 126
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿玥的小东东

感谢您的打赏,我会继续努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值