#c #inheritance #fstream
#c #наследование #fstream
Вопрос:
Я немного смущен. Когда я создаю производный класс, я получаю конструктор и деструктор родительского класса. Это, на мой взгляд, означало бы, что я создаю 2 класса вместо одного.
Теперь, если я хочу записать объект в файл, например, с помощью fstream, используя:
file.write((char*)amp;DerivedClass, sizeof(amp;DerivedClass));
Означает ли это, что я пишу только то, что находится между конструктором и деструктором производного класса?
Да, я пытался ввести его сам, но получаю смешанные результаты. Вот почему я в замешательстве. Я надеюсь, что кто-нибудь мог бы объяснить механику, лежащую в его основе, и не столько решение для его правильного написания.
Комментарии:
1. Нет, методы — это не данные. При компиляции данные объекта и функции объекта — это две совершенно разные вещи.
2. Вам, вероятно, нужно прочитать о сериализации. Такая запись данных в файл редко является хорошей идеей.
3. Итак, если я прав, функции могут быть отдельными при создании и уничтожении объекта, но проверяемые и все его данные будут «полным пакетом», передавая его в функцию записи fstream?
4. Вопрос не имеет смысла, потому что конструктор полностью отделен от объекта.
5. Ха-ха, это начинает иметь смысл, спасибо за этот спарринг-сеанс 🙂