Это относительно легко сделать в некоторых очень ограничительных обстоятельствах (POD без указателей/ссылок, одинаковой ОС, архитектуры процессора и компилятора C++ на обоих концах канала сериализации).
Существует целый ряд вопросов, которые усложняют вопросы, в более общем случае:
- дело с классами, которые имеют нетривиальные конструкторы/деструкторы;
- , связанный с указателями/ссылками, содержащимися в объекте;
- циклы в указателе/контрольном графе;
- полиморфизм;
- деловые виртуальные базовые классы;
- endianness;
- выравнивание полей, прокладка и т. Д .;
- Ширина примитивных типов (
int
на одной платформе не обязательно равна размеру int
);
- версия, позволяющая добавлять новые поля без разрыва.
Почему вы хотите сериализовать. это отправить объект другому процессу или компьютеру, или вы можете записать его в файл? –
Вот некоторые вещи, которые вам нужно будет рассмотреть: (1) как бороться с классами, которые имеют нетривиальные конструкторы; (2) как обращаться с указателями/ссылками, содержащимися в объекте; (3) как обращаться с виртуальными базовыми классами. – NPE
может быть отправлен через сокет tcp или что-то еще. – user1073834