C ++ sizeof包装类

时间:2011-05-13 15:38:23

标签: c++ class sizeof

假设我有一个不继承任何东西的A类,没有虚方法,并且只有一个T类型的变量.C ++是否保证sizeof(A) == sizeof(T)

编辑:

如果T是复合类型,它会有所不同吗?

3 个答案:

答案 0 :(得分:7)

不,由于填充,它可能超过sizeof(T)

答案 1 :(得分:2)

我不认为它明确保证它,但我不认为它会有所不同。

答案 2 :(得分:-1)

我认为C ++应该保证sizeof(A)== sizeof(T)。

考虑下面的情况,C ++应该使它像C:

一样工作
A a[10];
T t[10];

A * ap = (A *) t;
T * tp = (T *) a;

memcpy(ap, tp, sizeof(*ap));