我们都知道为类定义越多的属性会增大类对象的大小,在使用对象的时候也就会占用越多的内存。
在C++里,虚函数也同样会占用内存,因为类会维护一个指向虚函数表(VTable)的指针(pVTable),该指针占4个字节,用来保存虚函数表的地址。
如下图所示:
直接看代码:
#include "stdafx.h"
class Test
{
public:
int Age;
int ID;
virtual void Get1()
{
}
virtual void Get2()
{
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Test a;
printf("%d\n",sizeof(a));
return 0;
}
运行结果是 : 4 + 4 + 4 = 12 字节。