如果POD被封装在一个类中,它会产生同样的效果吗

If a POD is wrapped inside a class, does it give the same effect?

本文关键字:封装 POD 一个 如果      更新时间:2023-10-16

以下是两种不同的解释:

char c;  // 1
struct MyChar { char c; };  // 2

如果我做new MyChar[100],它会在所有平台中分配100个字节吗?添加非virtual构造函数/析构函数和/或operator会对MyChar的大小产生任何影响?

MyChar可能在c之后有未命名的填充字节,所以不,不能保证sizeof(MyChar)1

在MSVC上,您可以使用:

#pragma pack(1)
struct MyChar 
{ 
    char c; 
}; 
// Restore
#pragma pack()