c++ 继续检查....

来源:百度知道 编辑:UC知道 时间:2024/09/28 07:27:54
关于重载函数的。

、编写重载函数max3,求三个整数、三个复数的最大值。要求三个整数中一个默认参数值为20。
#include<iostream>
using namespace std;
struct Plural
{
double rp;
double ip;
};
int max(int a,int b,int c=20);

Plural max(Plural a,Plural b,Plural c);
int size(Plural n);
void main()
{ int x,y,z;
Plural f,g,h;
cout<<"please input integer x"<<endl;
cin>>x;
cout<<"please input integer y"<<endl;
cin>>y;
z=max(x,y);
cout<<"please input plural f"<<endl;
cout<<"please input plural g"<<endl;
h=max(f,g);
}
int max(int a,int b,int c=20)
{
int d=a;
if(b>d)
{
d=b;
}
if(c>d)
{
d=c;
}
return d;
}
Plural max(Plural a,Plural b,Plural c)
{
Plural g;
g=a;
if(size(b)>size(a))
{

//主要问题如下:
//1. 默认参数只能写在函数声明中。
//2. h=max(f,g)找不到对应的重载函数
//个人认为,比较合适的定义方法是先定义两个元素的max,然后利用两个元素的max来定义三个元素的
//逻辑上,本例中利用默认参数不合适
//3. Plural f,g,h; f, g没有初始化就被使用
//4. size函数漏了返回值
#include<iostream>
using namespace std;
struct Plural
{
double rp;
double ip;
};
int max(int a,int b,int c=20); //默认参数只在声明函数中写明就可以了。

Plural max(Plural a,Plural b,Plural c);
Plural max(Plural a,Plural b);
int size(Plural n);
void main()
{ int x,y,z;
Plural f,g,h; //这里应对f、g进行初始化
f.ip = 0.0;
f.rp = 1.2;
g.ip = 1.5;
g.rp = 2.5;

cout<<"please input integer x"<<endl;
cin>>x;
cout<<"please input integer y"<<endl;
cin>>y;
z=max(x,y);
cout<<"please input plural f"<<endl;
cout<<"please input plural g"<<endl;
h=max(f,g); //这个找不