我是靠谱客的博主 碧蓝小笼包,最近开发中收集的这篇文章主要介绍C++ 函数模板,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

template <typename AnyType>
void swap(AnyType &a, AnyType &b)
{
AnyType temp;
temp = a;
a = b;
b = temp;
}

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

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

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++ 函数模板所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部