【发布时间】:2013-04-04 10:03:27
【问题描述】:
假设:
Class A{
float one;
float two;
float three;
//... many, many member functions, and maybe static functions too ..
}
我是否可以假设,无论这个类中有多少个函数,以下情况通常应该是正确的:
sizeof(A)==sizeof(float)*3
这样我什至可以断言:
static_assert(sizeof(A) == sizeof(float) * 3, "Your class is padding memory.");
这准确吗?
现在,假设 A 类继承自另一个类。我认为上述情况不是正确的,而是您必须在sizeof 断言中包含从基类中添加 ivars 的大小?
【问题讨论】:
-
为什么不试试看看会发生什么?
-
这个答案很好地总结了这些问题:stackoverflow.com/a/937800
-
@ShafikYaghmour 谢谢,我同意
-
@BalaR 因为这将是依赖于实现的结果。我们提出这类问题是为了了解标准对此有何看法,因为这是我们唯一应该关心的事情。
标签: c++