继承空类会增加该类的大小吗?

时间:2015-04-23 15:40:28

标签: c++ c++11 standards c++14

假设:

class A
{
};

class B : A // inherit from an empty class
{
    int * x;
};

class C
{
    int * x;
};

根据标准是sizeof(B) == sizeof(C)吗?

sizeof(A) == 1时,1是"虚拟"值因为sizeof在这种情况下不能返回0

根据标准,是从非空类继承期间结转的虚拟值。

实际上,问题的原因是我使用void *作为指向几个类的指针,如果它们都共享一个基类会更清楚,但这是性能关键代码和添加一个字节,实际上会添加8,因为与子类中的64位指针对齐。这将显着增加总内存占用量,我可能会有大量内存占用。

0 个答案:

没有答案