信管14:函数重载示例

本文通过示例介绍C++中的函数重载概念及其实现方式,展示如何使用相同名称的不同函数签名来处理多种数据类型。

       函数重载是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.自己定一个程序,定义几个重载函数程序。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值