2010-05-25 86 views
2

这里给出的默认参数是我的类定义:错误:参数1

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

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

当我尝试编译此代码我得到的错误:“默认参数参数1给出”

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

+0

对不起,我忘了添加类型说明。我是一个Python家伙:)好吧,现在我编辑了我的文章。 – pocoa 2010-05-25 16:19:38

回答

8

形式上,您可以指定默认参数,无论您想要什么,但只能使用一次,每个参数。即使值相同,也必须在函数声明或定义中指定,但不能同时在两者中指定。

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

2

没有型号规格您的变量。它的目的是?

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

+0

指定两者都是* error *,而不是“冗余”。事实上,这正是OP所得到的错误。 – AnT 2010-05-25 16:49:55

0

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

相关问题