将包含字符串的对象写入文件的有效解决方案?

A valid solution to write objects containing strings into files?

谁能解释一下下面代码第2行的意思?

Book *B;
B=(Book *)new char[sizeof(Book)];
f1.read((char*)B,sizeof(Book));

这是我发现的将 class 本书(包含 std::strings)的对象写入文件的建议之一。
PS:有效!!

您包含的代码不 "write objects." 它从 f1.

读取一个字节数组

该代码也不是正确的 C++。您可以永远不会 对包含其他对象的 C++ 对象进行字节复制,因为它们可能包含指针或虚函数表。从文件中复制它们更糟糕,因为指针将指向甚至不再存在的内存。仅供参考,std::string 肯定有指针。