c++函数模板(c语言模板函数)

在C++ 中,支持模板。简单来说,就是可以只写一个模板,编译器会根据模板自动生成多个 函数,用以交换不同类型变量的值。

模板分为函数模板和类模板两种:

  • 函数模板是用于生成函数;
  • 类模板则是用于生成类的。

下面介绍主要函数模板:

函数模板的写法如下:

template <class 类型参数1, class类型参数2, ...>
返回值类型  模板名(形参表)
{
    函数体
}
template<class T>
T max(T a, T b, T c)
{
	if (b > a)
		a = b;
	if (c > a)
		a = c;
	return a;
}

注意:其中的 class 关键字也可以用 typename 关键字替换

上一期我们提到了函数重载(可以写不同类型的相同功能的函数),这会显得我们的代码很复杂,所以,使用函数模板就可以很好地解决这个问题,话不多说,直接上代码。

应用举例:(找出三个数中的最大值)

c++函数模板(c语言模板函数)

运行结果:

c++函数模板(c语言模板函数)

源代码如下:

#include<iostream>
using namespace std;
template<typename T>
T max(T a, T b, T c)
{
	if (b > a)
		a = b;
	if (c > a)
		a = c;
	return a;
}
int main()
{
	int i1 = 10, i2 = 17, i3 = 3;
	double d1 = 12.34, d2 = 23.55, d3 = 26.56;
	long l1 = 123456, l2 = 345667, l3 = 857483;
	cout << "max(i1,i2,i3)" << max(i1, i2, i3) << endl;
	cout << "max(d1,d2,d3)" << max(d1, d2, d3) << endl;
	cout << "max(l1,l2,l3)" << max(l1, l2, l3) << endl;
	return 0;
}

下期预告:类和对象

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论