: 所有基类可以使用的地方, D也可以派上用场, 尽管具体行为可能有所不同
不同的行为应该用虚函数来实现, 这非常重要
应该尽可能阻断那些派生类与基类的不同的接口, 运行期的方法是在派生类的对应函数中用...这也是前面 条款7 和 条款34 的一种解释
37 绝不重新定义继承而来的缺省参数值
虚函数是动态绑定的, 但是函数的缺省参数值却是静态绑定的, 只与你填写这个缺省参数值时的类型有关, 与指针指向的实际类型无关..., 在编译期才被具现化出来), 需要的是隐式接口(参数被传入模板后受到模板中的调用)和编译期多态(不同模板参数具象化出不同的模板导致了调用不同的接口), 很难把握
隐式接口并不基于函数签名式决定, 而是按照模板内的表达式决定..., 我们提前进行的设计需要尽量满足表达式的输入和返回的类型
不管是显式接口还是隐式接口, 都在编译期完成检查, 因此我们都要好好检查, 可能被传入模板的类型到底能不能满足模板的隐式接口
42 了解typename...T类型转为了U类型, 从而实现了模板类的隐式类型转换
这类的转换的接口形如下图:
46 需要类型转换的时候请为模板定义非成员函数
模板函数进行实参推导的过程中不会自动考虑模板函数的隐式类型转换, 因为从一开始编译器就看不见这个目标转换函数