C++ 函数重载
但在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);
}
posted on 2018-11-26 09:45 justdoXiao 阅读(253) 评论(0) 收藏 举报
浙公网安备 33010602011771号