Посмотрите на этот код:
#include <framework_i_hate.h>
int main() {
XFile file("./my_file.xxxx", "create");
XObject object("my_object");
// modify the object
object.Write();
}
Попробуйте угадать, где будет сохранен object
... да, вы уже догадались.Я думаю, что это слишком волшебно, я хотел бы написать что-то вроде object.Save(file)
, но это не обязательно.Очевидно, что внутри framework_i_hate.h
есть глобальная переменная, которая модифицируется во время конструктора file
.Что вы думаете об этом побочном эффекте внутри конструктора?
Как можно скрыть это поведение?
Бонус тому, кто угадывает структуру.