【问题标题】:Error: default parameter given for parameter 1错误:为参数 1 提供了默认参数
【发布时间】:2011-02-23 18:51:13
【问题描述】:

这是我的类定义:

class MyClass {
public:
   void test(int val = 0);
}

void MyClass::test(int val = 0) {
   //
}

当我尝试编译此代码时,我收到错误:“为参数 1 提供默认参数”

这只是一个简单的功能,我不知道有什么问题。我正在使用 Eclipse + MinGW。

【问题讨论】:

  • 对不起,我忘了添加类型说明。我是 Python 人 :) 好的,现在我编辑了我的帖子。

标签: c++ eclipse mingw default default-value


【解决方案1】:

形式上,您可以在任何地方指定默认参数,但每个参数只能执行一次。即使值相同,也必须在函数声明或定义中指定,但不能同时在两者中指定。

当然,如果声明在头文件中(定义在实现文件中),常识说默认参数必须在头文件中指定,这样所有翻译单元才能“看到”它。

【讨论】:

    【解决方案2】:

    您不需要(也不应该)在函数定义中重复默认值。仅在声明中需要。

    【讨论】:

      【解决方案3】:

      您的变量没有类型说明。是故意的吗?

      那么你实际上需要在声明中指定默认值,而不是在你实现它的地方,这将是多余的。

      【讨论】:

      • 同时指定两者将是一个错误,而不是“冗余”。事实上,这正是 OP 得到的错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2012-05-06
      • 2020-09-04
      相关资源
      最近更新 更多