当我需要声明自己的析构函数时

When I need to declare my own destructor?

本文关键字:自己的 析构函数 声明      更新时间:2023-10-16

如果class不存在用户定义的析构函数,而需要一个,则编译器隐式声明析构函数。什么时候需要声明自己的析构函数?

当隐式声明的析构函数不能做你需要它做的事情时

这有点复杂。你应该查一下"三原则"

如果在构造函数中或之后分配内存,创建对象或其他任何操作,则需要在对象销毁时清理。

当你想确保某事完成时。"某事"通常是关闭网络连接或文件或释放一些内存等。

每次必须在对象销毁时执行特殊任务,即:内存释放、关闭网络连接、减少引用计数、线程同步、抛出存储异常等。