C++学习笔记十三之函数重载

268 阅读1分钟

函数重载

  • 函数名相同
  • 参数不同
    • 参数不同(类型、个数、顺序)

缺省参数

  • 缺省的顺序:从右往左
  • 传参的顺序:从左往右

二义性

  • 参数缺省导致的二义性(无解)
  • 实参类型不匹配导致二义性(让实参完全匹配形参,强转)

练习代码

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;
}