c (fstream w / r), использующий наследование, является ли производный класс на самом деле двумя классами?

#c #inheritance #fstream

#c #наследование #fstream

Вопрос:

Я немного смущен. Когда я создаю производный класс, я получаю конструктор и деструктор родительского класса. Это, на мой взгляд, означало бы, что я создаю 2 класса вместо одного.

Теперь, если я хочу записать объект в файл, например, с помощью fstream, используя:

 file.write((char*)amp;DerivedClass, sizeof(amp;DerivedClass));
 

Означает ли это, что я пишу только то, что находится между конструктором и деструктором производного класса?

Да, я пытался ввести его сам, но получаю смешанные результаты. Вот почему я в замешательстве. Я надеюсь, что кто-нибудь мог бы объяснить механику, лежащую в его основе, и не столько решение для его правильного написания.

Комментарии:

1. Нет, методы — это не данные. При компиляции данные объекта и функции объекта — это две совершенно разные вещи.

2. Вам, вероятно, нужно прочитать о сериализации. Такая запись данных в файл редко является хорошей идеей.

3. Итак, если я прав, функции могут быть отдельными при создании и уничтожении объекта, но проверяемые и все его данные будут «полным пакетом», передавая его в функцию записи fstream?

4. Вопрос не имеет смысла, потому что конструктор полностью отделен от объекта.

5. Ха-ха, это начинает иметь смысл, спасибо за этот спарринг-сеанс 🙂