c++对c的拓展_函数重载
函数重载:c++中函数名可相同,可有多个函数名相同的函数存在(重载:名字相同意义不同)
本质:c++编译器根据类型来修饰函数
条件:1、同一作用域
2、参数个数、类型、顺序不同
注意:1、返回值类型不能作为重载条件
2、默认参数可存在二义性,存在二义性时报错,要避免其他二义性行为
# include <iostream>
using namespace std;
namespace A{ //不在同一作用域不可重载
void fun(int a){
}
}
void fun(int a){
}
void fun(int a,int b){ //不同参数个数可重载
}
void fun(double a){ //类型不同可重载
}
void fun(int a,double b){ //顺序不同可重载
}
void fun(double a,int b){
}
void fun(int a,int b=1){ //调用时报错 与fun(int a,int b)发生二义性
}