通过特化可以让模板适用一些更加特殊的情况,增强模板的可用性。简单测试代码如下:
template<typename T>
class Test20629
{
public:
void display(T para)
{
cout << "para " << para << endl;
}
};
template<>
void Test20629<int>::display(int para)
{
cout << "int " << para << endl; //输出形式和没有特化的不同,即要做的事情不同(特殊情况)
}
template<>
void Test20629<double>::display(double para)
{
cout << "double " << para << endl;
}
int main()
{
Test20629<int> t;
t.display(5);
Test20629<float> t1;
t1.display(5.5);
Test20629<float> t2;
t2.display(6.0);
return 0;
}
输出:
int 5
para 5.5
double 6.0