我有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 票数:4 已采纳

总是[除非在极少数情况下,只是为了满足那些指出那些极少数情况的学徒的要求],当将数据存储到文件中时,数据需要“序列化”-换句话说,以“单位”形式存储格式-不是指针,引用或其他间接形式。

因此,如果Shape有一个指针,则需要“解散”该指针,就像使用对象的operator <<打印内容一样。

  ask by w770115 translate from so

未解决问题?本站智能推荐: