
c++基础-c++对c的扩充:函数模版
发布日期:2021-05-08 09:42:07
浏览次数:20
分类:精选文章
本文共 1089 字,大约阅读时间需要 3 分钟。
函数模版(function template)
- 建立一个通用函数,其函数类型和形参类型不具体指定,使用一个虚拟的类型来代表,这个通用函数就称为函数模版。
- 模板函数的形式为:template< typename T >。类型参数T是一个虚拟的类型名,等到函数调用时根据实参的类型来确定T是什么类型。
例如,编写一个可以对多个数据类型(如int、float、double)进行排序的函数。使用模板函数实现。
#include using namespace std; template void sort(T* a, int n) { for (int i = 0; i < n-1; i++) { for (int j = 0; j < n-1; j++) { if (a[j] > a[j+1]) { T temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } for (int i = 0; i < n; i++) { cout << " " << a[i]; cout << endl; } return; } int main() { int n = 10; int a[10] = {8, 9, 5, 7, 6, 1, 3, 8, 4, 8}; float b[10] = {1.4, 456.3, 343.4, 16.2, 546, 412.5, 12.1}; double c[10] = {12.455, 135.5, 12.45, 156.5, 5465.2, 12.5, 124.1}; sort(a, n); sort(b, n); sort(c, n); return 0; }
输出结果如下:
通过上述代码,可以看到模板函数的实际应用。无论是整数、浮点数还是双精度数,排序函数都能正确处理。这种通用性的设计极大地提高了代码的复用性和维护性。
注意事项:
1. 模板函数的类型参数T必须在使用前明确指定,否则会导致编译错误。 2. 在函数调用时,需要传递适当的类型实参。 3. 模板函数的局限性在于它只能处理与T同类型的实参,无法进行类型转换。发表评论
最新留言
不错!
[***.144.177.141]2025年03月24日 09时30分50秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
12张图打开JMeter体系结构全局视角
2019-03-06