c++ 重载函数的使用(求最大值)
1 重载函数
构造函数可以有多个—重载(overloading)
相同函数名称有一个以上的构造函数,叫重载。
2 构造函数
c++里面如果想创建一个对象(一个东西),有一个函数会自动被调用,不需要自己去调用,这个函数就是构造函数
构造函数的语法
-
函数名称和类的名称相同
-
可以拥有参数,此处实部虚部
-
参数可以有默认值
-
没有返回类型
3 求最大值
eg:求取两个整数,三个整数的最大值
3.1 使用重载函数Max
#include<iostream>
using namespace std;
int Max(int, int);
int Max(int, int, int);
int main()
{
int x1, x2;
cout << "请输入两个整数:";
cin >> x1 >> x2;
cout << " 这两个整数中的最大值:" << Max(x1, x2) << endl;
int x3, x4, x5;
cout << "请输入三个整数:";
cin >> x3 >> x4 >> x5;
cout << " 这三个整数中的最大值:" << Max(x3, x4, x5) << endl;
return 0;
}
int Max(int a, int b)
{
return a > b ? a : b;
}
int Max(int a, int b, int c)
{
int Max = a > b ? a : b;
return Max > c ? Max : c;
}
两个双精度,三个双精度数的最大值类似
3.2 使用函数模板
#include<iostream>
using namespace std;
template<typename T> //模板函数
T Max(T a, T b)
{
return a > b ? a : b;
}
template<typename T>
T Max(T a, T b, T c)
{
T Max = a > b ? a : b;
return Max > c ? Max : c;
}
int main()
{
int x1, x2;
cout << "请输入两个整数:";
cin >> x1 >> x2;
cout << " 这两个整数中的最大值:" << Max(x1, x2) << endl;
int x3, x4, x5;
cout << "请输入三个整数:";
cin >> x3 >> x4 >> x5;
cout << " 这三个整数中的最大值:" << Max(x3, x4, x5) << endl;
return 0;
}
函数模板的写法如下:
template <class 类型参数1, class类型参数2, ...>
返回值类型 模板名(形参表)
{
函数体
}
其中的 class 关键字也可以用 typename 关键字替换,例如:
template <typename 类型参数1, typename 类型参数2, ...>