函数重载判断依据

函数重载定义:
两个函数(不带默认值)共用一个函数名,但形参个数或类型不同,
编译器根据形参与实参的类型或个数的最佳匹配,自动确定调用函数。

(1)传统c语言中:同一作用域内,函数名必须唯一,不允许出现同名的函数
    (特别在类的成员函数中,成员函数的名称与类的函数名要区分开来)。
(2)c++:用户可以函数重载,同一作用域内,函数参数的类型不同,或参数的个数不同,或者两者都不同
    可以有俩个或俩个以上函数使用相同的函数名
        但是,如果参数个数相同且参数类型相同,只是返回的类型不同,不允许重载。
        如:int a(int x);   和   double a(int x);
(3)函数的重载与带默认值的函数一起使用时,会有二义性。
        如:void b(int m=0, int n=1);  和  void b(int m);
(4)函数调用时,给出的形参与实参类型不相同,
    c++编译器会自动做类型转化,成功但可能发生不可识别的错误。
            如:void f(int x);  和  void f(long x);
            上述俩个函数满足重载的要求,参数的类型不同,但调用下面函数,会有错误
                int c=f(4.3);
            编译器无法确定将4.3转化成int,还是long。

代码:

#include<iostream>
using namespace std;
void A(int m){
    cout<<m<<endl;
}
void A(int m, int n){
    cout<<m<<" "<<n<<endl;
}
int B(int x){
    cout<<x*x<<endl;
}

double B(double x){
    cout<<x*x<<endl;
}
int main()
{
    A(2);
    A(2,3);
    int i=2;
    double d=2.2;
    B(i);
    B(d);
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值