ifstream作为班级成员

时间:2018-03-26 16:06:21

标签: c++ class pointers ifstream

我有一个ifstream指针作为类成员的类,例如

class SomeClass {
      ...
      ifstream* binary_file;
      ...
    public:
      ...
      void randomMethod();
      ...
}

在其中一种方法中,例如, randomMethod()我尝试通过执行binary_file->open(filename, ios::binary);以二进制模式打开文件,但这导致了段错误。

然后我尝试创建一个临时的ifstream,然后将指针指向ifstream,如下所示:

ifstream temp (filename, ios::binary);
binary_file = &temp;

上面的代码没有导致段错误,我能够在这个方法中对文件进行一些处理。但是,尝试以不同的类方法访问它时,我开始出错。我认为这是由于在方法返回后分配给temp的内存被释放,因此我的指针指向任意内存位置。

如何初始化ifstream对象并将其附加到我的类以供以后访问? (我确实试图在deconstuctor中关闭这个文件,但显然没有什么可以关闭......)

谢谢!

0 个答案:

没有答案