C++ 函数重载

孤街浪徒 提交于 2020-04-03 18:39:33
但在C++中,允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载
需满足 函数参数 : 个数不同 / 参数类型不同,参数顺序不同 才能构成重载  。
//C语言不支持函数重载 下面写法是错误的 
extern"C"{
    intsum (inta, intb ) {
        returna + b;
    }
    intsum (inta,intb ,intc ) {
        returna + b + b ;
    }
}
//参数个数不同 构成函数重载
void test (int a ,int b ){
}
void test (int a) {
}
//参数类型不同 构成函数重载
void test (int a) {
}
void test (float a) {
}
//参数顺序不同,同一方法参数类型不同,构成重载
void test1 (float a ,int b ) {
    
}
void test1 (int b , float a ) {
    
}
//参数顺序不同,同一方法参数类型相同,无法构成重载 报错:重复定义
void test2 (int a ,int b ) {
 
}
void test2 (int b , int a ) {
 
}
//返回值类型无法构成重载 报错:重复定义
void test3 (int a ,int b ) {
}
int test3 (int a ,int b ) {
    return a ;
}
注意: 隐式类型转换会造成二义性 。 
void a (long a) {
    
}
void a (float a) {
    
}
 //直接调用 a(10)会报错“Call to 'a' is ambiguous”  调用不确定的方法 “a”
int main () {
    a(10);  
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!