Я работаю над проектом, который включает анализ XML-документа, и мне нужно создать функцию открытия и закрытия, которая работает с файлами.У меня есть класс, который имеет объект ifstream и две функции закрытия и открытия, которые используют один и тот же объект.Проблема в том, что в функции open объект по умолчанию закрывается, и до тех пор, пока программы не достигнут функции закрытия, он всегда возвращает. Вы не открывали файл, даже если файл открыт. Есть ли способ сделать объектглобальный объект для того, чтобы создать его, чтобы он мог работать в обеих функциях?Любые предложения приветствуются
class CommandParser
{
private:
std::ifstream inFile;
std::string pathAddress;
...
...
public:
void open(const std::string address);
void close();
void setPathAddress(const std::string newPathAddress);
};
//Defining file
void CommandParser::open(const std::string address)
{
inFile.open(address);
if(!inFile.fail())
{
throw std::runtime_error("Invalid path! \n");
}
else
{
setPathAddress(address);
std::cout << "Successfully opened the file ! \n";
parseFile();
}
}
void CommandParser::close()
{
if (inFile.is_open())
{
inFile.close();
std::cout << "Successfully closed file! \n";
}
else
std::cerr << "You didn't open a file ! \n";
}