虚函数表 每个类有一张虚函数表,每个类对象有一个虚表指针。因为基类和子类都有虚表指针,所以当基类指针指向子类对象的时候,可以调用子类的虚函数,体现了多态性。 动态绑定:虚函数 静态绑定:非虚函数 析构函数一般写成虚函数的原因,这样当基类指针指向子类对象的时候,可以正确的调用子类的析构函数,正确的释放子类对象的资源。 构造函数一般不写成虚函数的原因,因为调用构造函数时对象还未被创建,也就没有虚表指针,更别提找到虚函数地址了。