函数的重载即对一个函数名重新赋予它新的含义,使一个函数名可以多用,即一物多用。
求3个数中的最大数
#include<iostream>
using namespace std;
int max(int a,int b,int c);
long max(long a,long b,long c);
double max(double a,double b,double c);
int main()
{
int i1,i2,i3,i;
cin>>i1>>i2>>i3;
i=max(i1,i2,i3);
cout<<"i_max="<<i<<endl;
int d1,d2,d3,d;
cin>>d1>>d2>>d3;
d=max(d1,d2,d3);
cout<<"d_max="<<d<<endl;
long g1,g2,g3,g;
cin>>g1>>g2>>g3;
g=max(g1,g2,g3);
cout<<"g_max="<<g<<endl;
}
int max(int a,int b,int c)
{
if(b>a)a=b;
if(c>a)a=c;
return a;
}
double max(double a,double b,double c)
{
if(b>a)a=b;
if(c>a)a=c;
return a;
}
long max(long a,long b,long c)
{
if(b>a)a=b;
if(c>a)a=c;
return a;
}
函数根据给出的信息找与之匹配的函数
#include<iostream>
using namespace std;
int max(int a,int b,int c);
int max(int a,int b);
int main()
{
int a=8,b=-12,c=27;
cout<<"max(a,b,c)="<<max(a,b,c)<<endl;
cout<<"max(a,b)="<<max(a,b)<<endl;
}
int max(int a,int b,int c)
{
if(b>a)a=b;
if(c>a)a=c;
return a;
}
int max(int a,int b)
{
if(b>a)a=b;
return a;
}
函数根据参数的个数找匹配的函数。
重载函数的参数个数,参数类型,参数顺序三者中至少有一种不同,函数返回类型可以相同可以不同。