прежде чем вы пометите его как дубликат, я уже прочитал следующее Q&A.fstream инициализация как класс
У меня есть простой класс под названием 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)
как-то вызывает конструктор копирования .., который является приватным
любая помощь?
Возможно, вам придется опубликовать полный экземпляр, который может быть скомпилирован, и который показывает проблему, поскольку я не могу воспроизвести проблему в взломанной версии, основанной на коде, который вы опубликовали. –
'// зачем копировать конструктор?' - что? Там нет конструктора копирования – sehe