空类占空间:1
类中只存储普通成员变量(非static),成员函数和static变量存在全局,对象调用函数的时候相当于传一个this指针进去。
类中如果有虚函数,空间增大一个地址的单位:4(32位) / 8(64位)。全局中每个类都有一个虚函数表,按顺序放着类中所有虚函数的地址(先放父类,再放子类)。类中只存一个表的入口,所以不管有几个虚函数,类占的空间都只增大1。
如果子类没有重写父类的虚函数,就用父类定义的。多态的实现就是到每个类自己的虚函数表中的相同位置找到名字相同存储位置不同的函数去调用。
纯虚函数,如 virtual void funtion1()=0 ,在子类中必须重写。有纯虚函数的类不能实例化。
虚基类用于菱形继承,防止存了多份祖父类的成员。