C++中“析构函数中调用虚函数采用静态联编”为什么正确?

如题所述

在构造函数和析构函数中调用虚函数,编译系统对构造函数和析构函数中调用虚函数采用静态联编,因为它们所调用的虚函数是自己的类,或者基类中定义的函数而不是在任何派生类中重定义的函数。所有这句话说的是正确的。

下面介绍一些相关知识:
什么是静态联编:
即在编译过程中进行联编被称为静态联编(static binding),又称为静态绑定、早期联编。

什么是动态联编:
即编译器必须能够在程序运行时选择正确的函数的代码,这被称为动态联编(dynamic binding),又称为动态绑定、晚期联编。

什么是虚函数:
虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用基类型别的指针指向其派生类的实例,然后通过基类的指针调用实际派生类的成员函数(基类指针可调用同名覆盖方法)。这种技术可以让基类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。
温馨提示:答案为网友推荐,仅供参考
相似回答