关于空类,含有虚函数的类的大小
来源:互联网 发布:淘宝寿衣门女主角 编辑:程序博客网 时间:2024/05/18 02:24
1、为何空类的大小不是0呢?
为了确保两个不同对象的地址不同,必须如此。
类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0.
2、请看下面的类:
class A{ virtual void f(){} };
class B:public A{}
此时,类A和类B都不是空类,其sizeof都是4,因为它们都具有虚函数表的地址。
3、请看:
class A{};
class B:public virtual A{};
此时,A是空类,其大小为1;B不是空类,其大小为4.因为含有指向虚基类的指针。
4、多重继承的空类的大小也是1.
class Father1{}; class Father2{};
class Child:Father1, Father2{};
它们的sizeof都是1.
5、何时共享虚函数地址表:
如果派生类继承的第一个是基类,且该基类定义了虚函数地址表,则派生类就共享该表首址占用的存储单元。对于除前述情形以外的其他任何情形,派生类在处理完所有基类或虚基类后,根据派生类是否建立了虚函数地址表,确定是否为该表首址分配存储单元。
- 关于空类,含有虚函数的类的大小
- 关于空类 含有虚函数类 占有空间大小
- 含有虚函数的类sizeof大小
- 含有虚函数的类sizeof大小
- 含有虚函数的类sizeof大小
- 含有虚函数的类sizeof大小
- 含有虚函数的C++类大小
- 含有虚函数的空类的内存大小
- 含有虚函数的类对象的空间大小
- 空类大小和虚函数的大小
- C++类对象大小的计算(三)含有虚函数、虚继承类大小计算
- C++类对象大小的计算(二)含有虚函数类大小计算
- 关于空类大小问题的总结
- C++ 虚函数表解析及含有虚函数的类sizeof大小
- 空类的大小
- 空类的大小
- C++ 空类的大小和存在虚函数时类的大小
- C/C++ 之 关于空类的大小与构造函数参数传递
- Ordered Fractions 运行超时啊~
- Android中图片占用内存的计算
- Boost.asio的简单使用(timer,thread,io_service类)
- 不编资源(XRG=1)和单编模块(./mg.sh)
- L6200E: __semihosting_swi_guard multiply defined的解决方法
- 关于空类,含有虚函数的类的大小
- 暑假ASP.NET学习笔记——7月17号
- VS中,带参数的main函数的调试
- 暑假ASP.NET学习笔记——7月18号
- Beyond Compare文件夹比较, 忽略svn文件
- MSTAR_V2.04的模拟器
- VC2005字符集设置容易出错的问题!
- hdu 1164 质因子分解 (筛素数模板)+ hdu 1215
- MSTAR的模拟器刷屏函数