我有一个名为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&
类型,对吧?我能做错什么?
答案 0 :(得分:10)
getline
的第一个参数类型为istream&
,不是 istream const &
。 (从流中读取会更改其状态。)从const
成员中取消parser::stream
限定符。