c++ - 我用 istream 得到未初始化的引用成员

标签 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’

最佳答案

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

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

}

关于c++ - 我用 istream 得到未初始化的引用成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28163303/

相关文章:

c++ - Visual Studio 6 何时捕获结构化异常?

c++ - 使用strcat时访问冲突写入位置错误

c++ - 虚拟继承 : No matching function for call to

c++ - 用线程生成问题世界

c++ - C++ 中的动态(类型)二进制缓冲区?

c++ - 动态创建循环对象

类中的 C++11 静态结构编译,为什么不链接?

c++ - 我如何克服这个错误 C2679 : binary '>>' : no operator found which takes a right-hand operand of type 'const char []'

c++ - 不用设置Linker->General->Additional Library Directories可以搜索到什么样的dll或lib

c++ - QWinTaskbarProgress 我做错了什么?