class Test
{
int x;
};
int main()
{
cout << sizeof(Test) ;
return 0;
}
输出:4
我只是想问,即使我没有创建 Test 类的任何对象,为什么它会打印 4 ?
sizeof(X)
是字节数X
创建时需要。致电new
倾向于使用更多字节来减少内存使用开销,但是自动存储(堆栈上或本地或全局或静态等)数组X[N]
将采取N*sizeof(X)
实践中的内存(由于线程安全要求,可能需要一些额外的内存用于函数局部静态)。
它与类型本身占用的内存量无关。
如果类具有未优化的方法,如果它们具有 vtable(由于使用virtual
关键字)或类似的。然后,存储代码或虚拟函数表的内存可能存在于类实例的内存成本之外。
在 C++ 语言本身中,没有办法确定类本身占用了多少内存,也没有可靠的方法来确定类本身占用了多少内存。new
开销群岛您通常可以通过查看给定平台的运行时行为、编译器或运行时库的代码来解决这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)