在C++中,类模板可以处理继承关系,通过使用继承和虚函数可以实现多态。以下是一个简单的示例,展示了如何在类模板中处理继承关系:
#include <iostream>
// 基类模板
template <typename T>
class Base {
public:
void print() const {
std::cout << "Base class" << std::endl;
}
};
// 派生类模板
template <typename T>
class Derived : public Base<T> {
public:
void print() const override {
std::cout << "Derived class" << std::endl;
}
};
int main() {
Derived<int> d;
d.print(); // 输出 "Derived class"
Base<int>* b = &d;
b->print(); // 输出 "Derived class"
return 0;
}
在这个示例中,我们定义了一个基类模板Base
和一个派生类模板Derived
。Derived
类模板继承自Base
类模板,并重写了基类的print
方法。在main
函数中,我们创建了一个Derived<int>
对象,并通过基类指针调用其print
方法。由于多态的存在,实际调用的将是派生类的print
方法。