C++继承内存布局
来源:互联网 发布:c语言自学软件手机版 编辑:程序博客网 时间:2024/05/24 06:49
接下来看多继承的内存布局情况。
首先是没有虚函数的情况,有如下类,
则内存布局如下,没有特别需要注意的地方,
接下来看看,有虚函数的情况,修改代码如下,
则布局情况如下。可以看到有两个虚表指针,每个基类对应一个。第二个虚表的-8表示指向这个虚表的指针的内存偏移。同时要注意子类的FunS函数所在的虚表。
最后再看一种有共同基类的情况,
则内存布局如下。可以看到因为有俩个直接基类,所以会有俩个虚表。第一个虚表里有四个函数,FUN被子类自己的函数覆盖,BFUN则是共同基类的。第二张表里有一个thunk,通过这个thunk将FUN跳转到了子类的FUN函数。thunk后面会单独有一篇文章介绍。
阅读全文
0 0
- 【C++】菱形虚拟继承(内存布局)
- 【c++】深度探索虚继承内存布局
- C++-对象继承中的内存布局
- C++ 多继承和虚继承的内存布局
- 虚继承--内存布局
- 虚继承内存布局
- C++继承内存布局
- C++继承内存布局
- C++继承内存布局
- 【C++】c++单继承、多继承、菱形继承内存布局(虚函数表结构)
- 【C++】c++单继承、多继承、菱形继承内存布局(虚函数表结构)
- 虚拟继承内存布局图示
- c++继承中的内存布局
- c++继承中的内存布局
- c++继承中的内存布局
- c++继承中的内存布局
- 多重继承内存布局分析
- c++继承中的内存布局
- android sdk | API level 24 | Manifest.permission
- Swift4.0 字符串操作
- Linux设备驱动&&内核开发
- 下载安装anaconda
- vue router 如何使用params query传参,以及有什么区别
- C++继承内存布局
- linux 安装 weblogic
- zTree使用时expandAll()折叠全部方法和expandNode()同时使用时节点显示问题记录
- 十几行代码搞定Android调用支付宝支付
- git提交代码时遇到代码库有更新以及本地有更新的解决方法
- iOS应用瘦身方法思路整理
- ifstream 文件读写 文件删除
- HTTP响应头和请求头信息对照表
- 今天开始学习泛类堆栈类