c++重载函数求最大值
时间: 2023-11-18 17:55:17 浏览: 303
c++实现找出数组最大值函数
C++中的重载函数可以用于求取不同类型或者相同类型的最大值。可以使用函数重载或者函数模板来实现。函数重载是指在同一个作用域内,函数名相同但是参数列表不同的函数。函数模板是指定义一个通用的函数,可以用于不同类型的参数。下面是两种实现方式的示例代码:
1. 使用函数重载
可以定义两个函数Max,一个用于求取两个整数的最大值,另一个用于求取三个整数的最大值。示例代码如下:
```
#include <iostream>
using namespace std;
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;
}
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;
}
```
2. 使用函数模板
可以定义一个通用的函数Max,使用模板参数来表示不同类型的参数。示例代码如下:
```
#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;
double y1, y2, y3;
cout << "请输入三个双精度数:";
cin >> y1 >> y2 >> y3;
cout << "这三个双精度数中的最大值:" << Max(y1, y2, y3) << endl;
return 0;
}
```
阅读全文