//基础模板一
template<typename T1, typename T2>
class TestTemplateA {
public:
void Func() {
printf("TestTemplateA: base\n");
}
};
//注意下面这个模板并不是【基础模板一】的偏特化,编译会报错,因为它属于【基础模板一】的一种情况
//特化或偏特化是指对类名后面的模板类型参数具体指定,而不是对template<>里的参数的具体指定
//template<bool, typename T>
//class TestTemplateA {
//public:
// void Func() {
// printf("TestTemplateB: base\n");
// }
//};
//偏特化1
template<typename T2>
class TestTemplateA<int, T2> {
public:
void Func() {
printf("TestTemplateA: 偏特化1\n");
}
};
//偏特化2
template<typename T1, typename T2>
class TestTemplateA<T1*, T2> {
public:
void Func() {
printf("TestTemplateA: 偏特化2\n");
}
};
//偏特化3
template<typename T1, typename T2>
class TestTemplateA<T1*, T2*> {
public:
void Func() {
printf("TestTemplateA: 偏特化2\n");
}
};
//偏特化4
template<typename T1, t
C++类模板特化全总结
于 2022-03-22 19:53:40 首次发布