Прошу прощения, если это совершенно глупый вопрос, но у меня все еще есть проблемы с ним.Создание потока в случае необходимости
Я пытаюсь передать два std::string fileNames
к функции foo
следующим образом:
Foo (интермедиат SomeValue, станд :: строка имя_файла1, станд :: строка filename2)
я тогда хочу чтобы проверить, что они оба имеют ли у FileName больше, чем ""
следующим образом:
bool hasFile1 = true;
if(fileName1.empty())
{
hasFile1 = false;
}
Моя проблема имеет быть en, поскольку я хочу иметь возможность создать ofstream
, если hasFile1 == true
и то же самое для hasFile2
, оба из которых должны использоваться позже в функции foo
.
Я пытался делать такие вещи, как:
std::ofstream file1;
if(hasFile1)
{
file1 = new std::ofstream(fileName1);
}
, но проблема с этим состоит в том, что file1 неполный тип. Другой метод, который я попробовал, был
std::ofstream* data;
if(hasFile1)
{
data = new std::ofstream(fileName1)/std::ofstream(fileName1);
}
и все различные комбинации всех либо дают неполное описание типа не допускается ошибка или я не могу присвоить указателю.
Главный вопрос заключается в том, как вы назначаете ofstream
, так что вам не нужно поддерживать 3 блока кода, которые имеют различные комбинации, из которых ofstreams
используются?
Любая помощь будет очень признательна !!
'BOOL hasFile1 = fileName1.empty();' - нет необходимости писать 4! линии, когда это будет сделано. – MSalters