【发布时间】:2013-10-01 03:07:25
【问题描述】:
我正在测试 C++ 中基类和派生类的大小。
class X {};
class Y : public virtual X {};
class Z : public virtual X {};
class A : public Y, public Z {};
X,Y,Z,A 的大小分别为 1,8,8,12。我无法理解这一点。我知道空类的默认大小是 1。所以我可以理解 X 的大小是 1。我知道 Y 和 Z 的大小不会是因为会添加 virtual_pointer。但是8?我不明白这个。谁能解释一下?
【问题讨论】:
-
这称为未指定行为:实现可以为所欲为,使程序正常工作,并且不需要记录甚至可靠的行为。
标签: c++