曲径通幽论坛
标题:
为什么空类会占用 1 个字节?
[打印本页]
作者:
beyes
时间:
2013-7-28 16:55
标题:
为什么空类会占用 1 个字节?
空类,即类中没有任何数据成员,按理说其对象不占据内存空间,长度应该为 0,但实际并不如此,当用 sizeof 来检测时,会看到它的长度为 1 个字节。我们知道,每个对象都隐含着一个 this 指针。如果一个空类对象完全不占用内存空间,那么空类就无法取得实例对象的地址,也就是 this 指针会失效,因此不能被实例化。
类的定义是由成员数据和成员函数组成,在没有数据成员的情况下,还是可以有成员函数的,因此仍然需要实例化,因此分配 1 字节的空间用于类的实例化,这 1 字节的数据并没有被使用。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2