将数据从向量写入文件。 C ++

时间:2013-04-16 00:07:19

标签: c++

我有Shapes类和gShapes向量。 我正在写文件的对象形式为这样的文件。

char* str;
vector<Shape*>::iterator it;
for( it = gShapes.begin(); it != gShapes.end(); it++ )
{       
    str = reinterpret_cast<char*>(reinterpret_cast<void*>(*it));
    saveFile.write(str, sz);
}

在我的类中添加动态内存之前,它工作正常,现在这段代码将指针写入文件而不是数据。

1 个答案:

答案 0 :(得分:4)

始终[除了非常罕见的情况,只是为了满足指出那些极少数情况的学生],当将数据存储到文件时,数据需要“序列化” - 换句话说,存储在“扁平”格式 - 不是指针,引用或其他间接形式。

所以,如果你的Shape中有一个指针,那么你需要“解开”那个指针,就像你使用operator <<为你的对象打印内容一样。