C++中class模板的偏特化示例
时间: 2023-11-28 14:49:09 浏览: 86
下面是一个简单的C++ class模板的偏特化示例:
```c++
#include <iostream>
using namespace std;
template<typename T>
class MyTemplateClass {
public:
void print() {
cout << "This is a generic template class" << endl;
}
};
// 针对char类型进行偏特化
template<>
class MyTemplateClass<char> {
public:
void print() {
cout << "This is a char template class" << endl;
}
};
int main() {
MyTemplateClass<int> obj1;
obj1.print(); // 输出:"This is a generic template class"
MyTemplateClass<char> obj2;
obj2.print(); // 输出:"This is a char template class"
return 0;
}
```
在上面的示例中,我们定义了一个类模板 `MyTemplateClass`,它有一个成员函数 `print`,用于输出一条通用的信息。然后,我们针对 `char` 类型进行了偏特化,重写了 `print` 函数,让它输出另一条信息。
在 `main` 函数中,我们分别声明了一个 `MyTemplateClass<int>` 类型和一个 `MyTemplateClass<char>` 类型的对象,并调用了它们的 `print` 函数。可以看到,对于 `MyTemplateClass<int>` 类型的对象,调用的是通用的 `print` 函数,而对于 `MyTemplateClass<char>` 类型的对象,调用的是针对 `char` 类型偏特化的 `print` 函数。
阅读全文