模板

来源:互联网 发布:hp网络激光打印机 编辑:程序博客网 时间:2024/04/28 21:53
//模板重载template<typename T>T const & MyMax(T const &a, T const &b){return a < b ? a : b;}T const & MyMax(T const &a, T const &b, T const &c){return ::MyMax( ::MyMax(a,b),c);}//模板特化template<typename T1,typename T2>class MyClass{//...};template<typename T> //局部特化class MyClass<T,T>{//...};template<typename T> //局部特化class MyClass<T,int>{//...};template<> //完全特化class MyClass<int,float>{//...};//模板缺省实参template<typename T1, typename T2 = int>class MyClass1{//...};//非类型模板参数template<typename T, int temp>class MyClass2{//...};template<typename T, int temp = 1>class MyClass3{//...};//关键字 typenametemplate<typename T>class MyClass4{typename T::SubType ptr;  //SubType 是定义于类 T 内部的一种类型 };

模板是编译时期决定的,与运行时无关.

模板的特化其实就相当于是 一种编译条件, 当模板参数为XX类时 以这种方式编译,如上面中的 MyClasss 的各种特化