以上为类型参数模板
下面为值参数模板 template<unsigned int N> class bitset; 。。。 bitset<100> b1; 模板定做,即针对某一类型的参数特别处理,比如加法并不是对所有的类型都适用,对于char*类型就要定做下 //先定义模板 template<typename T> class A{ public: T s; void show(); } template<typename T> void A<T>::show(){ cout<<s<<endl; } //然后模板定做 class B{}//定义一个类型 template<>//不要填入类型 class A<B>{//直接使用自己需要的类型 public: B s;//相应改为自己需要的类型 void show(); } void A<B>::show(){//注意格式,这里没有template语句 cout<<s<<endl; } 模板参数可以有多个 template<typename T1,typename T2> class A{} 只定做T2而不定做T1就叫局部定做,如: template<typename T1> class A<T1,T1>{} 或 template<typename T1> class A<T1,B>{}