В настоящее время я пишу для File_Handler, класса, который упрощает операции с файлами, которые мне нужны для моей программы.
У меня вопрос, какой путь лучше всего сохранить файл в моем классе. Будет ли лучше сохранить путь к моему файлу в виде std :: string и заново открыть его в каждой функции, которая использует этот файл, или было бы лучше, если бы я сохранил фактическую переменную std :: fstream. Так как это File_Handler
он будет выполнять много операций над одним файлом во множестве различных функций. Ниже приведена краткая демонстрация обоих способов:
Оптик 1 будет выглядеть так:
class File_Handler
{
public:
void foo()
{
std::fstream f(m_path);
//operations with 'f'..
}
private:
std::string m_path; //save path of file here
}
и Опц. 2 будет выглядеть так:
class File_Handler
{
public:
void foo()
{
//operations on already opened 'm_file'
}
private:
std::fstream m_file; //save actual file
}
Какая версия быстрее, экономнее и лучше?
Или есть даже лучший способ? (Например, скопировать весь файл в вектор и после каждой операции с вектором копировать вектор в файл? ..)
Буду признателен за помощь.
Задача ещё не решена.