没有匹配函数来调用'getline'

时间:2011-11-15 17:44:47

标签: c++ getline istream

我有一个名为parser的课程:

class parser {
  const std::istream& stream;
public:
  parser(const std::istream& stream_) : stream(stream_) {}
  ~parser() {}

  void parse();
};

parser::parse我想循环每一行,所以我使用std::getline

std::getline(stream, line)

然而,编译器给了我这个错误:

src/parser.cc:10:7: error: no matching function for call to 'getline'
    std::getline(stream, line);
    ^~~~~~~~~~~~

但是std::getline的第一个参数是std::istream&类型,对吧?我能做错什么?

1 个答案:

答案 0 :(得分:10)

getline的第一个参数类型为istream&不是 istream const &。 (从流中读取会更改其状态。)从const成员中取消parser::stream限定符。