一直有这样几个疑问,C++中一个对象占有多大内存?会不是里面的函数越多,占有的内存就越大?
1:空类占有的内存
#pragma once
class TestClass
{
};
结果:sizeof(TestClass) = 1
原因:C++要为每一个类在内存中一个独一无二的地址,所以即便是空类也会被分配1个字节来初
始化,所以空类的占有的字节是1.
结论:空类也要占用一个字节的内存
2:函数占有内对象的内存吗?
#pragma once
class TestClass
{
public:
TestClass(void);
~TestClass(void);
void func();
};
sizeof(TestClass) = 1
原因:我们在进行成员函数的调用如Object.func(),其实是这样的过程--func(Object.this)。函数虽然在内
部声明,但是成员函数的大小不在类的对象里面
1:空类占有的内存
#pragma once
class TestClass
{
};
结果:sizeof(TestClass) = 1
原因:C++要为每一个类在内存中一个独一无二的地址,所以即便是空类也会被分配1个字节来初
始化,所以空类的占有的字节是1.
结论:空类也要占用一个字节的内存
2:函数占有内对象的内存吗?
#pragma once
class TestClass
{
public:
TestClass(void);
~TestClass(void);
void func();
};
sizeof(TestClass) = 1
原因:我们在进行成员函数的调用如Object.func(),其实是这样的过程--func(Object.this)。函数虽然在内
部声明,但是成员函数的大小不在类的对象里面