猿问

序列化包含std :: string的类

我不是c ++专家,但过去已经将序列化了几次。不幸的是,这一次我试图序列化一个包含std :: string的类,我理解这很像序列化一个指针。

我可以将类写入文件,然后再次读回。所有int字段都可以,但是std :: string字段给出“地址超出范围”错误,大概是因为它指向的数据不再存在。

有标准的解决方法吗?我不想回到char数组,但至少我知道它们在这种情况下可以工作。如有必要,我可以提供代码,但我希望我已经很好地解释了我的问题。

我正在通过将类强制转换为char *并将其写入具有fstream的文件来进行序列化。阅读当然是相反的。


撒科打诨
浏览 710回答 3
3回答
随时随地看视频慕课网APP
我要回答