函数重载
- 函数名相同
- 参数不同
- 参数不同(类型、个数、顺序)
缺省参数
- 缺省的顺序:从右往左
- 传参的顺序:从左往右
二义性
- 参数缺省导致的二义性(无解)
- 实参类型不匹配导致二义性(让实参完全匹配形参,强转)
练习代码
void test(int a=20, int b=100)
{
cout << a << "," << b << endl;
}
void test(int b)
{
cout << b << endl;
}
void test1(int)
{
}
void test1(float)
{
}
int main()
{
int i = 2;
//后置从右往左数(不包含自己),前置,数所有的++。值相同
printf("%d,%d,%d,%d,%d\n", i++, ++i, i++,++i,i++);
//test1(2.4);编译报错,类型不明确
test1((float)2.4);
//test(200);//函数调用不明确
test();
test(10, 20);
return 0;
}