2012-04-25 28 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

+0

my operator << calls print() –

答えて

18

あなただけの機能では、デフォルトのパラメータを指定する必要があります宣言、すなわちヘッダ内にある。あなたの実装は次のようになります:

void ComplexNumber::print(ostream & out) const { ..... } 
関連する問題