空类的sizeof,有一个虚函数的类的sizeof
来源:互联网 发布:淘宝店铺取名大全2016 编辑:程序博客网 时间:2024/06/04 18:59
题目(二):运行下面的代码,输出是什么?
class A
{
};
class B
{
public:
B() {}
~B() {}
};
class C
{
public:
C() {}
virtual ~C() {}
};
int _tmain(int argc, _TCHAR* argv[])
{
printf("%d, %d, %d\n", sizeof(A), sizeof(B), sizeof(C));
return 0;
}
答案是1, 1, 4。class A是一个空类型,它的实例不包含任何信息,本来求sizeof应该是0。但当我们声明该类型的实例的时候,它必须在内存中占有一定的空间,否则无法使用这些实例。至于占用多少内存,由编译器决定。Visual Studio 2008中每个空类型的实例占用一个byte的空间。
class B在class A的基础上添加了构造函数和析构函数。由于构造函数和析构函数的调用与类型的实例无关(调用它们只需要知道函数地址即可),在它的实例中不需要增加任何信息。所以sizeof(B)和sizeof(A)一样,在Visual Studio 2008中都是1。
class C在class B的基础上把析构函数标注为虚拟函数。C++的编译器一旦发现一个类型中有虚拟函数,就会为该类型生成虚函数表,并在该类型的每一个实例中添加一个指向虚函数表的指针。在32位的机器上,一个指针占4个字节的空间,因此sizeof(C)是4。
- 空类的sizeof,有一个虚函数的类的sizeof
- 空类的sizeof,有一个虚函数的类的sizeof
- 3.空类的sizeof
- 无虚函数类的sizeof,有虚函数类的sizeof
- sizeof()一个空类
- sizeof一个类的大小
- 空类的sizeof为1
- 虚函数的sizeof
- 含有虚函数的类sizeof大小
- 含有虚函数的类sizeof大小
- 含有虚函数的类sizeof大小
- 含有虚函数的类sizeof大小
- 空类、含静态成员的类、普通类(不含虚函数、虚继承)的sizeof大小
- 虚函数的sizeof问题
- 类的sizeof
- 类对象的sizeof
- 类的sizeof
- 类的sizeof计算
- PHP 做守护进程
- 实现800*600,1024*768两套分辨率方案
- AssetManager asset的使用
- Covariance and Contravariance in Generics(泛型中的协变和逆变)
- uIP的web服务
- 空类的sizeof,有一个虚函数的类的sizeof
- 抽签(第十八周上机任务)————(看看谁中枪了。。。)
- web特效收录
- iOS 和 Android 的后台推送工作原理各是如何?有什么区别?
- 封锁机制
- ServiceConfigurationMBean为null的解决办法
- 环形队列FIFO实现方法
- unity3d与sqlite连接 System.Collections.ArrayList
- android实现仿照QQ好友列表滑动效果