1.45、C++中空类的大小是多少?
在C++中,空类的大小至少为1字节。这是因为C++标准规定:
- • 每个对象必须有唯一的内存地址,
- • 如果空类大小为0,那么多个空类对象的地址将会相同,违背对象模型的要求。
因此,编译器会为空类隐式分配1字节的空间作为占位符,确保每个实例拥有独一无二的地址。
关键点总结:
- • 空类没有数据成员,但大小为1字节,用于保证对象的唯一地址。
- • 成员函数(包括普通函数和静态函数)不占用对象空间。
- • 如果空类作为基类,编译器可能启用“空基类优化”,使得该基类不占用额外空间。
- • 空类大小与平台的内存对齐规则无关,统一为1字节。
举例说明:
class Empty {};
int main() {
std::cout << sizeof(Empty) << std::endl; // 输出1
}
输出结果为1,表明空类实例占用1字节内存。
(加入我的知识星球,免费获取账号,解锁所有文章。)
本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
阅读剩余
版权声明:
作者:讳疾忌医-note
链接:https://www.1217zy.vip/archives/1336
文章版权归作者所有,未经允许请勿转载。
THE END