任务描述
编写重载函数Max1 可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。
相关知识
为了你能够更好的完成本关的任务,你需要掌握
重载函数;
函数的嵌套调用。
函数重载
C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。
例:
形参类型不同
int add(int x, int y);
float add(float x, float y);
形参个数不同 int add(int x, int y); int add(int x, int y, int z)
注意事项
重载函数的形参必须不同:个数不同或类型不同。编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。
编译器不以形参名来区分
int add(int x,int y);
int add(int a,int b);
编译器不以返回值来区分
int add(int x,int y);
void add(int x,int y);
不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。这样不好: int add(int x, int y){ return x + y; } float add(float x,float y){ return x - y; }
例:重载函数应用举例
编写两个名为sumOfSquare的重载函数,分别求两整数的平方和及两实数的平方和。
#include <iostream>
using namespace std;
int sumOfSquare(int a, int b) {
return a * a + b * b;
}
double sumOfSquare(double a, double b) {
return a * a + b * b;
}
int main() {
int m, n;
cout << "Enter two integer: ";
cin >> m >> n;
cout<<"Their sum of square: "<<sumOfSquare(m, n)<<endl;
double x, y;
cout << "Enter two real number: ";
cin >> x >> y;
cout<<"Their sum of square: "<<sumOfSquare(x, y)<<endl;
return 0;
}
运行结果:
Enter two integer: 3 5
Their sum of square: 34
Enter two real number: 2.3 5.8
Their sum of square: 38.93
函数的嵌套调用
C++不允许对函数作嵌套定义,也就是说在⼀个函数中不能完整地包含另⼀个函数。在⼀个程序中每⼀个函数的定义都是互相平⾏和独⽴的。虽然C++不能嵌套定义函数,但可以嵌套调⽤函数,也就是说,在调⽤⼀个函数的过程中,⼜调⽤另⼀个函数。
在程序中实现函数嵌套调⽤时,需要注意的是:在调⽤函数之前,需要对每⼀个被调⽤的函数作声明(除⾮定义在前,调⽤在后)。
例: 输入两个整数,求平方和
#include <iostream>
using namespace std;
int fun2(int m) {
return m * m;
}
int fun1(int x,int y) {
return fun2(x) + fun2(y);
}
int main() {
int a, b;
cout<<"Please enter two integers (a and b): ";
cin >> a >> b;
cout << "The sum of square of a and b: "
运行结果:
Please enter two integers(a and b): 3 4
The sum of square of a and b: 25
任务要求
请编写求max1函数的代码,并将代码补充在右侧任务挑战区 Begin-End 之间。
测试说明
平台会对你编写的代码进行测试。
开始你的任务吧,祝你成功!
完整代码如下:
嫌不方便?微信公众号隔天同步更新: