您的位置:首页 > 其它

信管14:函数重载示例

2015-03-23 15:02 309 查看
       函数重载是C所没有的内容。所谓重载,就是几个函数具有相同的函数名,函数参数个数或类型不同,系统在编译时会根据实际的实参个数和类型来决定调用哪一个函数。下面程序中的max()函数就是重载。

#include<iostream>
using namespace std;

/*      以下各个函数名字一样,但参数个数或类型不一样*/

int max(int x,int y)     // max():返回2个整数中的大数
{ return(x>y ? x:y);
}

int max(int x,int y,int z)// max():返回3个整数中的大数
{ int temp=max(x,y);
return(temp>z ? temp:z);
}

double max(double x,double y)// max():返回2个双精度数中的最大数
{ return(x>y ? x:y);
}

double max(double x,double y,double z)// max():返回3个双精度数中的最大数
{ double temp=max(x,y);
return(temp>z ? temp:z);
}

char max(char x,char y) // max():返回2个字符数中的最大数
{ return(x>y ? x:y);
}

int max(char x,char y,char z)   // max():返回3个字符数中的最大数
{ int temp=max(x,y);
return(temp>z ? temp:z);
}

int main()
{ cout<<"max(3,5)="<<max(3,5)<<endl;

cout<<"max(4,5,8)="<<max(4,5,8)<<endl;

cout<<"max(3.1,5.6)="<<max(3.1,5.6)<<endl;

cout<<"max(15.3,13.4,27.8)="<<max(15.3,13.4,27.8)<<endl;

cout<<"max('a','b')="<<max('a','b')<<endl;

cout<<"max('d','e','h')="<<max('d','e','h')<<endl;

system("pause");

return 0;
}



请参照课本P29-31页面相关内容。

请思考如下几个问题:

1.重载有什么好处?

2.什么时候会出现重载的二义性错误?

3.自己定一个程序,定义几个重载函数程序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: