在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 关键字替换
上一期我们提到了函数重载(可以写不同类型的相同功能的函数),这会显得我们的代码很复杂,所以,使用函数模板就可以很好地解决这个问题,话不多说,直接上代码。
应用举例:(找出三个数中的最大值)
运行结果:
源代码如下:
#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;
}
下期预告:类和对象
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。