C++ fstream初始化为类

C++ fstream初始化为类,c++,constructor,fstream,C++,Constructor,Fstream,在您将其标记为副本之前,我已经阅读了以下内容 我有一个叫做ATM的简单类: ATM.h 我尝试通过初始化列表对其进行初始化: ATM::ATM(Bank* ownerBank, const char* inputFile) : ownerBank(ownerBank), inputFile(inputFile), fileReader(inputFile,std::ifstream::in), // why copy constructor? mainThread(performSingleA

在您将其标记为副本之前,我已经阅读了以下内容

我有一个叫做ATM的简单类:

ATM.h

我尝试通过初始化列表对其进行初始化:

ATM::ATM(Bank* ownerBank, const char* inputFile) :
ownerBank(ownerBank),
inputFile(inputFile), 
fileReader(inputFile,std::ifstream::in), // why copy constructor?
mainThread(performSingleATMActionFunc,this)
{}
线路
fileReader(inputFile,std::ifstream::in)

以某种方式调用复制构造函数。。哪个是私人的


有什么帮助吗?

你可能正在复制ATM类型的对象。默认情况下,它复制所有成员

这需要流的复制构造函数

注意:让filestream成为ATM类的成员对我来说是一种设计味道。ATM机通常没有“a”文件。因此,您可能需要一个(成员)函数来读取“事务”(只是猜测)


你可能正在复制
ATM
类型的对象。默认情况下,它复制所有成员

这需要流的复制构造函数

注意:让filestream成为ATM类的成员对我来说是一种设计味道。ATM机通常没有“a”文件。因此,您可能需要一个(成员)函数来读取“事务”(只是猜测)


您可能必须发布一个完整的示例,可以编译并显示问题,因为我无法在基于您发布的代码的黑客版本中重现问题。
//为什么要复制构造函数?
-什么?那里没有复制构造函数。你可能必须发布一个完整的示例,可以编译并显示问题,因为我无法在基于你发布的代码的黑客版本中重现问题。
//为什么要复制构造函数?
-什么?那里没有复制品,事实上你是对的。在“Bank”类中,我有一个ATM向量,其中push_-back方法调用了ATM默认副本构造函数。事实上,你是对的。在“Bank”类中,我有一个ATM向量,其中push_-back方法调用了ATM的默认复制构造函数。
ATM::ATM(Bank* ownerBank, const char* inputFile) :
ownerBank(ownerBank),
inputFile(inputFile), 
fileReader(inputFile,std::ifstream::in), // why copy constructor?
mainThread(performSingleATMActionFunc,this)
{}