2012-04-25 100 views
7

任何想法,爲什麼這個錯誤是在編譯的時候來了?C++默認參數錯誤

ComplexNumber.cpp:21: error: default argument given for parameter 1 of ‘void ComplexNumber::print(std::ostream&) const’ 
ComplexNumber.h:17: error: after previous specification in ‘void ComplexNumber::print(std::ostream&) const’ 

這是我在這些特定區域代碼:

ComplexNumber.cpp

21 void ComplexNumber::print(ostream & out = cout) const { 

ComplexNumber.h

17 void print(ostream & out = cout) const; 
+1

只是出於好奇:是不是更直接使用'operator <<'? – stefan 2012-04-25 21:01:14

+0

我的操作符<< calls print() – 2012-04-25 21:20:11

回答

18

您應該只在函數指定默認參數聲明,即在標題中。你的實現應該看起來像這樣:

void ComplexNumber::print(ostream & out) const { ..... }