求类的大小

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:26:20
#include "iostream.h"
class CTestA

{

public:

CTestA(){}

virtual ~ CTestA(){}

protected:

int m_A;

};
void main()
{
cout<<sizeof(CTestA);
}
结果是8。为什么

virtual ~ CTestA(){} // 4
int m_A; // 4

后面一个就不用说了,前面一个是编译器发现这个类里面有个虚析构,所以内部给类提供了一个vptr来保存所有的虚函数列表(指向列表的头).

楼上回答得很对,是编译器在编译时候在类中放置VPTR,指向VTABLE。主要是为了继承这个类的子类进行晚绑定时候用。