析构函数申明为private的作用

2017-03-16  本文已影响0人  李里里Riss

一般我们的析构函数都是定为public

私有化虚构函数

我们有这样一种应用场景,我们需要实例化一个类,但是我们却不想维护它的生命周期,所以希望它功能实现完毕就自动销毁。

举个栗子:
我们有一个线程需要处理IO或者其他耗时的工作,主体函数实例化该类,一般使用下面两种方法

所以,我们可以采用delete this的办法,在该类的最后处理完毕的函数调用delete this销毁自身。
这种方法是可行,但存在一个问题,域外不能New完自己delete ,否则可能出现两次delete的情况。

然后,可以采用将析构函数私有化,对象只能被New而不能被delete。强行delete编译器会报不可访问的错误。自然编译通不过,所以保证了该种方法的安全。

上一篇 下一篇

猜你喜欢

热点阅读