gpt4 book ai didi

c++ - 删除boost归档对象还会删除与其关联的流吗?

转载 作者:行者123 更新时间:2023-12-02 10:30:10 28 4
gpt4 key购买 nike

在我的代码中,我必须保留一个持久的boost::oarchive对象来编写。所以我有一个writer类,该类保留ostream的指针和boost::oarchive指针说-ofstream *fs = new ofstream();boost::archive::binary_oarchive *afs = new boost::archive::binary_oarchive( *fs );我在销毁它们时遇到了问题。这是我在清除函数中释放对象的操作-delete fs;delete afs; #valigrind引发无效读取
Valgrind在此处破坏“afs”时抛出了无效的读取错误-是否不需要“delete fs”?删除增强对象是否也足以释放流对象?

最佳答案

归档文件可能想要在自我销毁之前将某些内容刷新到文件流中,但是您已经关闭了文件流。
因此,请先删除存档,然后再删除您的ofstream。
在大多数情况下,以相反的顺序破坏依赖对象是安全的。

关于c++ - 删除boost归档对象还会删除与其关联的流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62550963/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com