赞
踩
C++内存分布,主要是了解 类 的内存占用。
我们经常需要了解的包括:
1、有虚函数的类。
2、继承有虚函数的基类(单继承,多继承)
3、虚继承基类(单,多,菱形继承)
4、虚函数、虚继承结合。
不同编译器对其的处理是不一样的。在window上,编译器自带的为 msvc,分析msvc下的内存分布。
在vs工具选项里,打开命令行,输入以下命令,可查看所有类分布
查看所有对象 cl ./main.cpp -d1reportAllClassLayout
查看单个对象 cl ./main.cpp -d1reportSingleClassLayoutBase
在这里主要记录一条
在虚继承的情况下,子类没有再去定义新的虚函数,那么首字节是vbptr
如果基类自己再新定义了一个虚函数,那么首字节是vfptr,优于虚继承。
简单分析可见:https://blog.csdn.net/JACKSONMHLK/article/details/123872817?spm=1001.2014.3001.5502
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。