在金山WPS的面试中,有一道题目是这样的:
A是一个空类,求A的内存大小:
class A{}; cout <<sizeof(A)<<endl;
在64位的VS2013中,运行结果是:1。
原因是:即使是空类,在实例化后的内存中也是独一无二的,所以不能是0。根据编译器的不同,会给空类隐含添加一个字节,这样实例化后,这个类就是独一无二的了。
同理,struct也是如此。
时间: 2024-10-10 19:51:52
在金山WPS的面试中,有一道题目是这样的:
A是一个空类,求A的内存大小:
class A{}; cout <<sizeof(A)<<endl;
在64位的VS2013中,运行结果是:1。
原因是:即使是空类,在实例化后的内存中也是独一无二的,所以不能是0。根据编译器的不同,会给空类隐含添加一个字节,这样实例化后,这个类就是独一无二的了。
同理,struct也是如此。