C++中有类模版和函数模版2种模版方式,模版特化也分为全特化和偏特化2种。
首先来看下类模版
#include <iostream>
//普通模版
template <typename T1,typename T2>
class Base{
private:
T1 n1;
T2 n2;
public:
Base(T1 n1_t,T2 n2_t):n1(n1_t),n2(n2_t){}
void show()const{
std::cout << "#1:" << n1 << "," << n2 << std::endl;
}
};
//模版偏特化
template <typename T2>
class Base<char,T2>{
private:
char n1;
T2 n2;
public:
Base(char n1_t,T2 n2_t):n1(n1_t),n2(n2_t){}
void show()const{
std::cout << "#2:" << n1 << "," << n2 << std::endl;
}
};
//模版全特化
template <>
class Base<double,double>{
private:
double n1;
double n2;
public:
Base(double n1_t,double n2_t):n1(n1_t),n2(n2_t){}
void show()const{
std::cout << "#3:" << n1 << "," << n2 << std