template <class Derived>
时间: 2024-09-25 20:00:24 浏览: 31
C++的template模板中class与typename关键字的区别分析
5星 · 资源好评率100%
`template <class Derived>` 是 C++ 中的一种模板元编程技巧,它通常用于模板函数或模板类的定义。"Derived" 这里是一个类型别名,表示这个模板适用于从 Base 类派生出来的所有 Derived 类型。通过这种方式,你可以编写一些通用的代码,它可以自动适应任何指定的 Derived 类,这样就不需要为每个具体的 Derived 类单独编写代码。
例如:
```cpp
template <class Derived>
void print(Derived& obj) {
std::cout << "Derived type is: " << typeid(obj).name() << '\n';
}
int main() {
MyClass myClass;
MyDerived derived(myClass);
// 使用模板,打印出各自类型的名称
print(myClass); // 输出 "Derived type is: MyClass"
print(derived); // 输出 "Derived type is: MyDerived"
return 0;
}
```
阅读全文