c++++ 模板继承允许模板派生类重用基类模板的代码和功能,适用于创建具有相同核心逻辑但不同特定行为的类。模板继承语法为:template
C++ 模板继承
模板继承允许您在派生类中重用基类模板的代码和功能。这对于创建共享相同核心逻辑但具有不同特定行为的类很有用。
语法
template<typename T>
class Base {
// 基类模板代码
};
template<typename T>
class Derived : public Base<T> {
// 派生类模板代码
};
实例
假设我们有以下 Base 模板类,它实现了简单的计数器:
template<typename T>
class Base {
public:
Base() : count(0) {}
void increment() { ++count; }
T getCount() const { return count; }
private:
T count;
};
现在,我们想创建一个 Derived 类,它继承了 Base 的计数功能,但还增加了打印当前计数的附加方法:
template<typename T>
class Derived : public Base<T> {
public:
void printCount() const { cout << "Count: " << getCount() << endl; }
};
实战案例
以下是使用 C++ 模板继承的实战案例:
#include <iostream>
int main() {
Derived<int> counter;
counter.increment();
counter.increment();
counter.printCount(); // 输出: Count: 2
return 0;
}
在这个示例中,我们创建了一个 C++ 模板继承的 Derived 类实例,它提供了 Base 类的计数功能,并增加了 printCount 方法来打印当前计数。