我们已经熟悉了继承、多态和虚函数的概念。派生类继承自基类,并通过重写基类的虚函数来定制其行为。所有操作都是在基类的实例上,以多态的方式进行的。当基类对象实际上是派生类的实例时,会调用相应的定制化重写函数。基类对派生类一无所知,而派生类甚至可能在基类代码编写和编译时尚未存在。奇异递归模板模式(CRTP)则彻底颠覆并反转了这种井然有序的模式。
本章将涵盖以下主题:
什么是 CRTP?
什么是静态多态,与动态多态有何不同?
虚函数调用有哪些缺点,为什么在编译时解析这些调用可能更可取?
CRTP 还有哪些其他用途?