在同一对象的成员之间传递 ifstream 变量,C++

Passing an ifstream variable between members of the same object, C++

目标: 使用 class 变量,使得对象成员中声明的 ifstream 可以被同一对象的后续成员使用,而无需使用函数头参数传递。

问题:创建的对象测试的本地 ifstream 未在该对象的第二个成员中重新使用。我一定是设置错了,我该如何解决?

类 和文件现在对我来说就像是在爬一座山,但我什至找不到第一个立足点——让该死的变量起作用!我在网上看了太久,但所有的例子都很复杂,我只想做一些基本的工作来开始修补。我敢肯定我错过了一些非常简单的事情,真的很令人沮丧 >:[

main.cpp

#include "file.h
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    file test;
    test.file_pass();
    return 0;
}

file.h

#ifndef FILE_H
#define FILE_H
#include <fstream>
#include <iostream>

using namespace std;

class file
{
    public:

        file();
        void file_pass();

    //private:
        ifstream stream;
};

#endif

file.cpp

#include "file.h"

//**********************************
//This will read the file.
file::file()
{
    ifstream stream("Word Test.txt");
}

//**********************************
//This will output the file.
void file::file_pass()
{
   //ifstream stream("Word Test.txt"); //if line activated, program works fine of course.
    string line;
    while(getline(stream, line))
            cout << line << endl;
}

您在这里创建了一个与 class 成员同名的新局部变量:

file::file()
{
    ifstream stream("Word Test.txt");
}

相反,您可以使用它来初始化构造函数中的 class 成员:

file::file() : stream("Word Test.txt")
{
}