我是靠谱客的博主 碧蓝小笼包,这篇文章主要介绍C++ 函数模板,现在分享给大家,希望可以做个参考。

函数模板就是通用的函数,它使用泛型来定义函数,泛型可用具体的类型替换,通过将类型作为参数传递给模板,使编译器生成该类型函数。

也就是说,函数参数的类型可以不确定。例如,写一个交换数据 ab 的函数 swap,参数既可以是 int 类型数据,也可以是 double 类型数据。如果不用模板,则需要写两个函数,使用模板的话就能进行统一。

复制代码
1
2
3
4
5
6
7
8
9
template <typename AnyType> void swap(AnyType &a, AnyType &b) { AnyType temp; temp = a; a = b; b = temp; }

关键字 templatetypename 是必需的,typename 可用 class 替换,AnyType 是类型名,符合 C++ 命名规则即可。必须使用尖括号 <>。像使用常规函数一样使用即可。

并非所有的模板参数必须是模板参数类型。

复制代码
1
2
3
4
5
6
7
int main() { int a = 1, b = 2; swap(a, b); double x = 1.1, y = 2.2; swap(x, y);

模板本身不会创建任何函数,只是告诉编译器如何定义函数。需要使用 int 类型时,会用 int 替换 AnyType,使用 double 类型时,会用 double 替换 AnyType,这一过程将由编译器自动完成。使用模板虽然代码量少了,实际上可执行程序没有缩短。

模板并非可以处理所有的类型,上面的例子就无法处理数组类型。可以再写一个模板,模板也能重载。

在重载的情况下,如果有常规函数,也有模板函数,调用函数时优先匹配常规函数,再匹配模板函数。

最后

以上就是碧蓝小笼包最近收集整理的关于C++ 函数模板的全部内容,更多相关C++内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部