小编典典

将析构函数设为私有有什么用?

all

将析构函数设为私有有什么用?


阅读 96

收藏
2022-06-20

共1个答案

小编典典

基本上,只要您希望某个其他类负责您的类对象的生命周期,或者您有理由阻止对象的破坏,您都可以将析构函数设为私有。

例如,如果您正在做某种引用计数的事情,您可以让对象(或已“加好友”的管理器)负责计算对自身的引用数量,并在数量达到零时将其删除。当仍有对它的引用时,私有
dtor 会阻止其他任何人删除它。

再举一个例子,如果你有一个对象,它有一个管理器(或它本身),它可能会破坏它,或者可能拒绝破坏它,这取决于程序中的其他条件,例如打开的数据库连接或正在写入的文件。您可以在类或管理器中有一个“request_delete”方法来检查该条件,它将删除或拒绝,并返回一个状态,告诉您它做了什么。这比仅仅调用“删除”要灵活得多。

2022-06-20