试图为类创建一个写入函数并获取错误

时间:2012-03-18 13:00:09

标签: c++

我已经为我的类实现了一个写函数,但是我收到了错误:

class Fa{
private:
  string Q_;
  string F_;

public:
   void write(ostream& out = cout) const{
   out<<Q_<<endl;
   out<<F_<<endl;
   }
};
  

错误:为`void Fa :: write(std :: ostream&amp;)const'

的参数1给出的默认参数

有人可以告诉我这个错误意味着什么,我怎么能避免呢?

1 个答案:

答案 0 :(得分:0)

您缺少包含和命名空间:

#include <iostream>
#include <string>

class Fa{
  private:
    std::string Q_;
    std::string F_;

  public:
    void write(std::ostream& out = std::cout) const{
      out << Q_<< std::endl;
      out << F_<< std::endl;
    }
};

如果您有头文件和cpp文件,请在头文件中指定默认参数:

  /* ... */
  public:
    void write(std::ostream& out = std::cout) const;
  /* ... */

并且在cpp文件中不要:

    void Fa::write(std::ostream& out) const {
       /* ... */
    }