class CExample
{
public:
CExample(){} //不占用sizeof大小
~CExample(){}//不占用sizeof大小
void commonFun(){} //不占用sizeof大小
virtual void virtualFun(){}//存在虚函数,生成virtual table,故占用一个指针空间
private:
static int m_a; //static成员不占用sizeof空间
static double m_d;
int m_b;//占用
};
总结:
1、空类,占用一个字节。
2、所有非虚函数不占用空间,存在代码区。
3、如果存在虚函数,则存在虚函数表,将消耗一个指针的空间(4)。
4、static的成员变量不占用空间。
5、非静态的成员变量,按照字节对其,根据实际情况占用sizeof大小。
6、所有的派生类,都会保留基类对象的成员变量,不管是否public。