我的教授给了我以下的.h文件,作为制作词法分析器的编程任务的一部分。
#ifndef LEXER_H
#define LEXER_H
#include "token.h"
#include <istream>
class Lexer {
public:
Lexer(std::istream& input_stream);
Token next_token();
private:
int current_line;
int current_column;
std::istream& input_stream;
};
#endif
我开始制作.cpp文件,如下所示:
#include "lexer.h"
Lexer::Lexer(std::istream& inputstream){
}
当我尝试编译时,收到错误消息:
lexer.cpp: In constructor ‘Lexer::Lexer(std::istream&)’:
lexer.cpp:4: error: uninitialized reference member ‘Lexer::input_stream’
答案 0 :(得分:3)
编译器是显式的:参与成员必须在成员初始化列表中初始化:
Lexer::Lexer(std::istream& inputstream) : input_stream(inputstream) {
}