错误:为参数1指定的默认参数

时间:2010-05-25 16:14:02

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

这是我的班级定义:

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

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

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

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

3 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

您的变量没有类型规范。这是打算吗?

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

答案 2 :(得分:0)

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