2、定义一个空的类型,里面没有任何成员变量和成员函数,对该类求sizeof,得到的结果是多少?
空类型的实例中不包含任何信息,但当我们声明该类型的实例的时候,他必须在内存中占有一定的空间,否则无法使用这些实例。
至于占用多少内存,由编译器决定。 Visual Studio中每个空类型的实例占用1字节的空间。
=========
如果给该空类型添加一个构造函数和析构函数,求sizeof还是为1. 调用构造函数和析构函数只需要知道函数的地址即可,而
这些函数的地址只与类型相关,而与类型的实例无关,编译器也不会因为这两个函数而在实例中添加任何额外的信息。
============
如果把析构函数标记为虚函数,C++ 的编译器一旦发现一个类型中有虚拟函数,就会为该类型生成虚拟函数表,并在该类型的每一个实例中
添加一个指向虚拟函数表的指针。在32位的机器上,一个指针占4个字节的空间,因此求得sizezof为4;64位的求得为8.