您的位置:首页 > 其它

模版全特化与偏特化

2016-07-27 09:25 447 查看
/*
1、模版的特化
对于一个模版,对其中的所有模版参数指定确定的类型。
2、偏特化
对于一个模版,部分的模版参数指定确定的类型
3、在进行模版实例化的时候,编译器会对特定的类型找到最合适,最匹配的实现。
*/
#include <iostream>
using namespace std;
//模版
template<class T1, class T2>
class Test
{
public:
Test (T1 i, T2 j): a(i),b(j)
{
cout << "使用原模版:" << a << " " << b << endl;
}
private:
T1 a;
T2 b;
};
//全特化
template<>
class Test<int , char>
{
public:
Test(int i, char j) : a(i), b(j)
{
cout << "使用全特化:" << a << " " << b << endl;
}
private:
int a;
char b;
};
//偏特化
template<class T1>
class Test<T1, char>
{
public:
Test(T1 i, char j) : a(i), b(j)
{
cout << "使用偏特化:" << a << " " << b << endl;
}
private:
T1 a;
char b;
};
int main()
{
Test<double, int> t1(2.22, 3);
Test<double, char> t2(2.22, 'c');
Test<int, char> t3(3, 'b');
return 0;
}
/*
使用原模版:2.22 3
使用偏特化:2.22 c
使用全特化:3 b
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: