C++的虚函数表

Posted hesorchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++的虚函数表相关的知识,希望对你有一定的参考价值。

虚函数表

每个类有一张虚函数表,每个类对象有一个虚表指针。因为基类和子类都有虚表指针,所以当基类指针指向子类对象的时候,可以调用子类的虚函数,体现了多态性。

动态绑定:虚函数
静态绑定:非虚函数

析构函数一般写成虚函数的原因,这样当基类指针指向子类对象的时候,可以正确的调用子类的析构函数,正确的释放子类对象的资源。

构造函数一般不写成虚函数的原因,因为调用构造函数时对象还未被创建,也就没有虚表指针,更别提找到虚函数地址了。

以上是关于C++的虚函数表的主要内容,如果未能解决你的问题,请参考以下文章

C++的虚函数表和虚析构

C++的虚函数表

C++的虚函数表

C++:多态(重写,多态原理单继承和多继承的虚函数表)

C++:多态(重写,多态原理单继承和多继承的虚函数表)

9-4:C++多态之单继承和多继承中的虚函数表