//函数重载的注意事项 //⚪引用作为重载条件 //⚪函数重载碰到函数作为默认参数 #include //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; }