模板的特化详解
目录
一、什么是模板的特化
二、实例说明
一、什么是模板的特化
模板特化是 c++为 模板参数提供的一种针对不同场景的定制手段 。
二、实例说明
1.单个模板参数特化,可以针对int 类型的模板参数 进行 特殊处理
template<class K>
class AC
{
public:void Tool() { cout << "处理普通的逻辑" << endl; }K a;
};
template<>
class AC<int>
{
public:void Tool() { cout << "处理int的逻辑" << endl; }int a;
};
int main()
{AC<string>().Tool();AC<int>().Tool();return 0;
}
2.还可以特殊处理 非指定类型的指针类型模板参数
template<class K>
class AC
{
public:void Tool() { cout << "处理普通的逻辑" << endl; }K a;
};
template<class K>
class AC<K*>
{
public:void Tool() { cout << "处理指针的逻辑" << endl; }K a;
};
int main()
{AC<string>().Tool();AC<int*>().Tool();return 0;
}
3. 多个模板参数的特化
template<class K,class T>
class AC
{
public:void Tool() { cout << "处理普通的逻辑" << endl; }K a;
};
template<class K,class T>
class AC<K,T*>
{
public:void Tool() { cout << "偏特化,处理指针的逻辑" << endl; }K a;
};
int main()
{AC<int,int>().Tool();AC<int,int*>().Tool();return 0;
}