在C++中,類模板可以處理繼承關(guān)系,通過使用繼承和虛函數(shù)可以實(shí)現(xiàn)多態(tài)。以下是一個(gè)簡單的示例,展示了如何在類模板中處理繼承關(guān)系:
#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;
}
在這個(gè)示例中,我們定義了一個(gè)基類模板Base
和一個(gè)派生類模板Derived
。Derived
類模板繼承自Base
類模板,并重寫了基類的print
方法。在main
函數(shù)中,我們創(chuàng)建了一個(gè)Derived<int>
對象,并通過基類指針調(diào)用其print
方法。由于多態(tài)的存在,實(shí)際調(diào)用的將是派生類的print
方法。