, 不希望派生类对这个接口进行改变
35 考虑virtual函数的其他选择
非虚拟接口(non-virtual interface; NVI)手法: 令用户通过非虚公有函数来间接调用私有虚函数, 是模板方法设计模式的一种表现...虚函数是动态绑定的, 但是函数的缺省参数值却是静态绑定的, 只与你填写这个缺省参数值时的类型有关, 与指针指向的实际类型无关
这种特性会在你试图使用多态的缺省参数值时产生非常奇怪的效果, 因此千万不要重新定义..., 因此我们无法直接在模板类中调用模板化的基类的成员
有三种方法处理这个问题:
在调用基类函数前加上this指针this->foo();, 用指针进行多态调用
用using声明式using Base模板在编写的时候非常方便, 但是一旦使用不当, 模板被编译器具现化的时候可能会产生非常多的重复二进制代码
和普通的函数编写不同, 模板的重复无法直观看出来, 需要想象目标模板被多个不同类型具现化的时候可能发生的重复...称为成员函数模板(member function template)
智能指针类编写了非explicit的构造函数, 在自身底层是T类型的指针时, 接受一个U类型的指针作为构造函数的参数, 然后通过原始指针本身的转换和继承形式将