空class的size问题
来源:互联网 发布:达梦数据库公司上市 编辑:程序博客网 时间:2024/06/05 16:08
今天遇到一个问题:
<span style="font-family: Arial, Helvetica, sans-serif;">class A</span>
{public:A(){};~A(){};};
问:A a;cout<<sizeof(a)<<endl;输出为多少,我想当然的以为是4,上机一试,原来是1,编译器在执行A a;这行代码后需要,作出一个Class A的Object。并且这个Object的地址还是独一无二的,于是编译器就会给空类创建一个隐含的一个字节的空间。
#include <iostream>using namespace std;class A{public:A(){};~A(){};};class B:public A{};class C:public virtual B{};class D:public virtual C{};<pre name="code" class="cpp">int main(){A a;B b;C c;D d;cout<<sizeof(a)<<endl;cout<<sizeof(b)<<endl;cout<<sizeof(c)<<endl;cout<<sizeof(d)<<endl;return 0;}
输出为:
1
1
4
8
虚函数产生额外的负担,如果派生类继承的第一个是基类,且该基类定义了虚函数地址表,则派生类就共享该表首址占用的存储单元。对于除前述情形以外的其他任何情形,派生类在处理完所有基类或虚基类后,根据派生类是否建立了虚函数地址表,确定是否为该表首址分配存储单元。
0 0
- 空class的size问题
- 关于空的class的size问题
- 一个空的class
- size class
- size class
- Size Class
- size of 的问题
- ios size class + autolayout在ios8以下死机和cpu占用高的问题
- 空结构体(空类)的size
- apple各种型号设备对应的Size Class
- List 为空和 size为零的区别
- c++空的class的大小
- class size与align
- iOS8 中的 Size Class
- ios8 Size Class使用
- ios size class
- iOS-size class
- size class 初探
- PrintWriter类
- C#什么时候该使用静态类呢?
- 面试题—Java递归实现约瑟夫环
- 高盛CEO:从贫穷中崛起,我的5条建议
- python学习笔记之密码高强度加密
- 空class的size问题
- Roman to Integer
- Android fill_parent、wrap_content和match_parent的区别
- C语言中.h和.c文件差别
- PHP魔术方法之 __sleep() 和 __wakeup()
- 世界那么大,能够被记录下来的也就只有文字
- LeetCode 127 Word Ladder
- 猜年龄
- 二叉树创建,遍历,创建遍历指针小套路