C++的联编和虚函数的使用

联编的定义:将源码中将函数调用解释为特定的函数代码块称为函数名联编

静态联编(static binding):由于函数重载的缘故,编译器需要根据函数名和相应的参数进行选择,来执行相应的函数版本。

编译器在编译过程完成这种联编,这种在编译过程中的联编称为静态联编。又叫早期联编。

动态联编:编译器必须生成能够在程序运行时选择正确的虚方法的代码,这种联编称为动态联编。又叫晚期联编。

我给大家总结的就是:编译器对非虚函数使用静态联编,对虚函数使用动态联编。

两者的应用场景:首先静态联编的效率比动态联编的效率更高。所以1.如果一个类不作为基类,则不要使用动态联编。2.如果派生类不重载继承的函数,也不需要使用动态联编。这样效率更高,C++编译器就是默认的选择静态联编的。

C++的指导原则就是不要为不需要的东西付出代价(内存或者处理时间)。仅当需要时使用动态联编。

后面我们将介绍管理虚函数和虚函数表,还有普通函数的管理,在类中的区别。

扫描二维码关注公众号,回复: 11321673 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_44065088/article/details/102840738