default parameters - ShenYj/ShenYj.github.io GitHub Wiki

默认参数

C++ 允许函数设置默认参数, 在调用时可以根据情况省略实参

int sum(int v1 = 3, int v2 = 4) {
    return v1 + v2;
}

int main() {

    sum();      // 3 + 4
    sum(2);     // 2 + 4
    sum(3, 5);  //  3 + 5

    getchar();
    return 0;
}

规则:

  1. 必须从右到左设置默认值 错误示例: int sum(int v1 = 3, int v2) 编译会报错的

  2. 如果函数同时有声明、实现,默认参数只能放在函数声明中

    • 示例

      int sum(int v1 = 3, int v2 = 4);
      int sum(int v1, int v2) {
          return v1 + v2;
      }
  3. 默认参数的值可以是常量、全局符号(全局变量、函数名)

    • 示例

      int age = 20;
      int sum(int v1 = 3, int v2 = age);
      int sum(int v1, int v2) {
          return v1 + v2;
      }
      
      void test(int a) {
          cout << "test(int) - " << a << endl;
      }
      
      void func(int v1, void(*p)(int) = test) {
          p(v1);
      }
      
  4. 函数重载、默认参数可能会产生冲突, 二义性(建议优先选择使用默认参数)

⚠️ **GitHub.com Fallback** ⚠️