函数模板通过template定义通用函数,如T max(T a, T b),编译器自动推导类型;类模板如template class Stack用于创建泛型类,成员函数需用template在类外实现,使用时必须指定类型参数,且模板代码需放在头文件中供编译器实例化。

模板是C++中实现泛型编程的核心工具,它允许我们编写与数据类型无关的函数和类。通过模板,可以写出更通用、可复用的代码,避免重复编写相似逻辑。C++中的模板主要分为函数模板和类模板两种形式。
函数模板怎么写
函数模板用于定义一个通用函数,能够处理多种数据类型。编译器会根据调用时传入的参数类型自动推导并生成对应的函数实例。
基本语法如下:
templateT max(T a, T b) {
return a > b ? a : b;
}
说明:
立即学习“C++免费学习笔记(深入)”;
-
template
声明了一个模板,T 是占位类型名(也可以用 class 关键字,两者在模板中等价) - 函数返回类型和参数都使用 T,表示它可以适配任意支持 > 操作的类型
- 调用时无需显式指定类型,编译器自动推导
使用示例:
int x = max(3, 5); // T 推导为 intdouble y = max(2.5, 3.7); // T 推导为 double
如果需要多个类型参数,可以扩展:
templateauto add(T a, U b) -> decltype(a + b) {
return a + b;
}
这里使用了尾置返回类型来确定返回值类型。
类模板怎么写
类模板用于定义通用类,比如标准库中的 vector、list 都是类模板。它允许类中的数据成员、成员函数使用泛型类型。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~