Например, если у меня есть класс с именем Obj
и класс Obj
с именем obj1
. Когда я хочу записать двоичный файл с помощью reinterpret_cast
, я открываю этот файл в двоичном режиме, а затем
outstream.write( reinterpret_cast<const char *>(&obj1), sizeof(obj1) )
где outstream — это ifstream.
Когда я хочу прочитать из этого файла,
instream.read( reinterpret_cast<char *>(&obj1), sizeof(obj1) )
Что случилось. Он читает представление obj1
в двоичном формате и преобразует в obj1
или как это работает. Когда я пишу, я понимаю, что он интерпретирует obj1
одного байта, но когда я читаю, я не понимаю, что происходит.
Ob
не является типом POD, это поведение undefined. Используйтеstatic_assert(std::is_pod<Obj>::value, "not POD");
, чтобы убедиться в этом. - person 5gon12eder   schedule 19.09.2015reinterpret_cast
! Кажется, вам нужно прочитать об указателях и различных типах приведения типов. - person Marcus Müller   schedule 19.09.2015memcpy
биты объекта в / из файла. - person 5gon12eder   schedule 19.09.2015