C++默认参数错误

Pat*_*ray 7 c++ default-arguments

任何想法为什么这个错误在编译时出现?

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’
Run Code Online (Sandbox Code Playgroud)

这是我在这些特定领域的代码:

ComplexNumber.cpp

21    void ComplexNumber::print(ostream & out = cout) const {
Run Code Online (Sandbox Code Playgroud)

ComplexNumber.h

17    void print(ostream & out = cout) const;
Run Code Online (Sandbox Code Playgroud)

jua*_*nza 18

您应该只在函数声明中指定默认参数,即在标题中.您的实现应该看起来像这样:

void ComplexNumber::print(ostream & out) const { ..... }
Run Code Online (Sandbox Code Playgroud)