如果class
不存在用户定义的析构函数,并且需要一个析构函数,则编译器会隐式声明析构函数。当我需要声明自己的析构函数时?
答案 0 :(得分:4)
当隐式声明的析构函数不能满足你的需要时。
这有点牵扯。您应该查看并研究rule of three。
答案 1 :(得分:1)
如果您在构造函数中或之后分配内存,创建对象或其他任何内容,则需要在对象被破坏时进行清理。
答案 2 :(得分:1)
当你想确保某些事情完成时。 '某事'通常会关闭网络连接或文件或释放一些内存等......
答案 3 :(得分:1)
每次必须执行对象销毁的特殊任务,即:内存释放,关闭网络连接,递减计数引用,线程同步,抛出存储的异常等。