2010-05-25 104 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

您不需要(也不應該)在函數定義中重複默認值。這只是在聲明中所要求的。

相關問題