c++继承类模板 使用代码举例
时间: 2025-01-01 18:35:41 浏览: 6
在 C++ 中,类模板继承是一种通用的设计模式,允许我们创建一个模板类,然后让其他具体的类继承这个模板。这样做可以避免编写重复的代码,并提供一种类型安全的方式来复用功能。下面是一个简单的例子:
```cpp
// 定义一个模板基类 TemplateBase
template <typename T>
class TemplateBase {
public:
// 公共成员函数,这里假设它操作的是 T 类型的对象
void process(T value) {
std::cout << "Processing value of type " << typeid(value).name() << ": " << value << std::endl;
}
};
// 现在我们可以创建一个继承自 TemplateBase 的具体类 MyClass
class MyClass : public TemplateBase<int> {
public:
// 我们可以覆盖基类的方法,也可以添加新的方法
void process(int value) override {
TemplateBase<int>::process(value); // 调用基类处理整数的方法
std::cout << "Processing integer: " << value * 2 << std::endl;
}
// 这里还有一个模板实例化的特有方法
template<typename U>
void processSpecial(U value) {
std::cout << "Processing a special value of type " << typeid(value).name() << ": " << value << std::endl;
}
};
int main() {
// 创建 MyClass 实例并调用其方法
MyClass obj;
obj.process(5); // 输出:Processing value of type int: 5 Processing integer: 10
obj.processSpecial(3.14); // 输出:Processing a special value of type double: 3.14
return 0;
}
```
在这个例子中,`MyClass` 继承了 `TemplateBase<int>` 并实现了对其 `process` 方法的覆盖。同时,`MyClass` 还有一个模板方法 `processSpecial`,可以处理任何类型的值。
阅读全文