fstream初始化为一个类
fstream initialization as a class
在将其标记为重复之前,我已经阅读了以下问答;A.
我有一个简单的课程叫ATM:
ATM.h
class ATM {
public:
ATM(Bank* ownerBank, const char* inputFile);
~ATM();
void performSingleATMAction();
friend void* performSingleATMActionFunc(void* pVoidATM);
private:
Bank* ownerBank;
string inputFile;
fstream fileReader;
Thread mainThread;
static const unsigned int ATM_SLEEP_TIME = 1000*100;
};
我尝试通过初始化列表对其进行初始化:
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
类型的对象。默认情况下,复制所有成员。
这需要流的复制构造函数。
注意:让文件流成为ATM类的一员对我来说是一种设计气味。ATM机通常没有"a"文件。因此,您可能需要一个(成员)函数来读取"事务"(只是猜测)
相关文章:
- 构造函数在退出函数时无法初始化一个参数
- 当一个值是非常量但用常量表达式初始化时使用constexpr
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- 从另一个静态常量数组初始化静态常量数组(只需少量计算)
- 有没有办法一次声明相同类型的多个对象,并通过一个表达式立即使用相同的右值初始化它们?
- C++:将初始化的对象传递给另一个类的构造函数;需要不必要的构造函数吗?
- 将另一个类的对象传递到当前类C++的构造函数中(不是成员初始化)
- 'auto *x = new some_struct{};"是一个未初始化的变量?
- 有没有办法使用该类的构造函数初始化另一个类的私有部分内的对象数组?
- 初始化类中的指针数组,并在另一个类中检索它
- C++,每个循环初始化一个新的静态变量
- 初始化一个由 p 指向的新 INTSTK,它最多可以存储 m 个
- 如何初始化一个标准::字符串数组?
- 我们如何初始化一个C++中所有值为 0 的向量
- C++ 警告:在一个声明中将截断从双精度初始化为浮点数,但在另一个声明中则不初始化
- 从C++调用 Python 类方法,如果给定一个初始化的类作为 PyObject
- C++11使variadic构造函数了解一个初始化列表的初始化列表
- 静态变量已用另一个初始化
- 与可以一个从另一个初始化的类的循环依赖关系
- 另一个初始化静态 C++ 类成员