我使用istream获得未初始化的引用成员

时间:2015-01-27 04:33:32

标签: c++

我的教授给了我以下的.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’

1 个答案:

答案 0 :(得分:3)

编译器是显式的:参与成员必须在成员初始化列表中初始化

Lexer::Lexer(std::istream& inputstream) : input_stream(inputstream) {

}