gpt4 book ai didi

c++ - 是否应该将输出操作放入析构函数中?

转载 作者:太空狗 更新时间:2023-10-29 20:06:37 25 4
gpt4 key购买 nike

我有一个类在程序执行期间收集和处理一些数据,我们称它为dataCollectionInterface。当程序终止时(或者更确切地说:dataCollectionInterface 对象超出范围)需要对(某些)收集的数据进行一些最终处理和输出。

现在的问题是:我应该将这个最终处理和输出(到文件)放入 dataCollectionInterface 的析构函数中(还是从析构函数中调用它)?或者我应该提供一个需要由主程序显式调用的公共(public)成员例程 (doFinalProcessing)?

将它放入析构函数中会方便得多(无需担心在调用 doFinalProcessing 等之后防止数据调制的保障措施),但是否存在缺点,例如关于输出操作可能出现的异常的处理?

最佳答案

你不应该 throwing any exceptions from the destructor ,如果您的操作可能抛出异常并且您需要为它们进行异常处理,那么最好在公共(public)函数中执行此操作,而不是在析构函数中执行。

不过,如果您宁愿在 destructor 本身内处理所有异常而不将它们从析构函数中抛出,那么您也可以选择第一种机制,如果您能够可靠地这样做,我认为没有什么坏处。

关于c++ - 是否应该将输出操作放入析构函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7089479/

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