令一种是写为一个纯虚基类, 所有接口都是纯虚函数用来多态调用实现类的具体函数.
实现类头文件: 以工厂模式扮演具现化对象的目标, 都有一个static的初始化函数以供接口类获得指向自己的指针....: 所有基类可以使用的地方, D也可以派上用场, 尽管具体行为可能有所不同
不同的行为应该用虚函数来实现, 这非常重要
应该尽可能阻断那些派生类与基类的不同的接口, 运行期的方法是在派生类的对应函数中用...error报错, 编译期的方法是额外分出细化的基类, 然后让特定的方法只在特定的基类中有对应的虚函数可重写(覆盖)
33 避免遮掩继承而来的名称
当一个名称同时在小作用域和大作用域中存在时, C++会进行遮掩...41 了解隐式接口和编译期多态
普通编程的时候一个类所需的都是显式接口(类头文件声明的接口)和运行期多态(继承而来的接口), 多数都是我们可控的
模板编程的时候我们看不到模板参数具体的头文件声明(因为模板参数本身是未定的..., 因此我们无法直接在模板类中调用模板化的基类的成员
有三种方法处理这个问题:
在调用基类函数前加上this指针this->foo();, 用指针进行多态调用
用using声明式using Base<Tmp