4、函数重载的注意事项.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //函数重载的注意事项
  2. //⚪引用作为重载条件
  3. //⚪函数重载碰到函数作为默认参数
  4. #include <iostream>
  5. //1、引用作为重载条件
  6. void func(int &a) //int &a = 10; 不合法
  7. {
  8. std::cout << "func(int &a)的 调用" << std::endl;
  9. }
  10. void func(const int& a) //const int &a = 10; 加const后编译器帮我们优化 加入临时变量 合法
  11. {
  12. std::cout << "func(const int &a)的 调用" << std::endl;
  13. }
  14. //2、函数重载碰到默认参数
  15. void func2(int a, int b = 10)
  16. {
  17. std::cout << "func2(int a, int b) 的调用" << std::endl;
  18. }
  19. void func2(int a)
  20. {
  21. std::cout << "func2(int a) 的调用" << std::endl;
  22. }
  23. int main()
  24. {
  25. //int a = 10;
  26. //func(a); //调用的是没有const的函数,a 是一个变量(可读可写),加const限制为只读状态
  27. //func(10);
  28. //func2(10); //当函数重载碰到默认参数,出现二义性,报错,尽量避免这种情况
  29. func2(10, 20);
  30. system("pause");
  31. return 0;
  32. }