动态多态 运行期间 面向对象
纯虚函数 强制实现
更难调试,运行更快
静态多态 编译期间 泛型
必须实现那些接口 非强制实行
份文件写注意
template<typename T>
class Demo
public:
template<typename X>
void Assign(const X val);
template<typename T>//注意顺序
template<typename X>
void Assign(const X val);
不同类型调用
Demo<int> demo_int;
Demo<double> demo_double;
demo_int.Assign(demo_double.GetVal());//使用统一接口获取,因为是两个class()
//写operator= 注意
全特化,编译时生成,是个全新的类,需要全部重写
template<typename T>
class Demo
template<>//特化int类型需要重新写
class Demo<int>
偏特化,特化一部分,其余的代码编译器还是会帮你生成
template<>
class Demo<int *>::Demo()//偏特化Demo()构造,特化一部分
模板类继承
template<typename T>
class sonDemo::public Demo<T>
模板类单例模式,当包装器
把模板类做成单利模式,里面包装的类都会变成包装器