1

我有一堂课叫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: 错误: 没有匹配函数调用'getline'
    标准::getline(流,线);
    ^~~~~~~~~~~~

但是第一个参数std::getline是 type std::istream&,对吧?我可能做错了什么?

4

1 回答 1

10

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

于 2011-11-15T17:45:58.413 回答