用函数重载方法求3个数中最大的数(分别考虑整数、双精度数、长整数的情况)

        在编程时,一般是一个函数对应一种功能。但有时我们要实现的是同一类的功能,只是有些细节不同。例如希望从3个数中找出其中的最大数,而每次求最大数时数据的类型不同,可能是3个整数、3个双精度数或3个长整数。程序设计者会分别设计出3个不同名的函数,其函数原型为
        int max1(int a,int b, int c);                                   //求3个整数中的最大数
        double max2(double a,double b,double c);        //求3个双精度数中的最大数
        long max3(long a, long b, long c);                      //求3个长整数中的最大数
        以上3个函数的函数体是相同的。程序要根据不同的数据类型调用不同名的函数。如果在一个程序中这类情况较多,对程序编写者来说,要分别编写出功能相同而名字不同的函数,这是很不方便的。有人自然会想:能否不用3个函数名而用一个统一的函数名呢?
        C++允许用同一函数名定义多个函数,而这些函数的参数个数和参数类型可以不相同。这就是函数的重载(function overloading),即对一个函数名重新赋予它新的含义,使一个函数名可以多用。所谓重载,其实就是"一物多用"。以后可以看到,不仅函数可以重载,运算符也可以重载,例如,运算符"<<"和">>"既可以作为位移运算符,又可以作为输出流中的插入运算符和输入流中的提取运算符。

编写程序:

运行结果:

程序分析:
        可以看到:我们用同一个函数名max分别定义了3个函数。那么,在调用时怎样决定选择哪个函数呢?系统会根据调用函数时给出的信息去找与之匹配的函数。上面的main函数3次调用max函数,而每次实参的类型不同。系统就根据实参的类型找到与之匹配的函数,然后调用该函数。
        上例3个max函数的函数体是相同的,其实重载函数并不要求函数体相同。重载函数除了允许参数类型不同以外,还允许参数的个数不同。

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值