//函数重载的注意事项

//⚪引用作为重载条件

//⚪函数重载碰到函数作为默认参数

#include <iostream>

//1、引用作为重载条件

void func(int &a)   //int &a = 10;  不合法
{
	std::cout << "func(int &a)的 调用" << std::endl;

}

void func(const int& a)  //const int &a = 10;   加const后编译器帮我们优化  加入临时变量  合法
{
	std::cout << "func(const int &a)的 调用" << std::endl;

}

//2、函数重载碰到默认参数
void func2(int a, int b = 10)
{
	std::cout << "func2(int a, int b) 的调用" << std::endl;

}

void func2(int a)
{
	std::cout << "func2(int a) 的调用" << std::endl;

}

int main()
{

	//int a = 10;
	//func(a);   //调用的是没有const的函数,a 是一个变量(可读可写),加const限制为只读状态

	//func(10);

	//func2(10);  //当函数重载碰到默认参数,出现二义性,报错,尽量避免这种情况

	func2(10, 20);

	system("pause");

	return 0;
}