假设我有一个不继承任何东西的A类,没有虚方法,并且只有一个T类型的变量.C ++是否保证sizeof(A) == sizeof(T)
?
编辑:
如果T是复合类型,它会有所不同吗?
答案 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));