当我需要声明自己的析构函数时
When I need to declare my own destructor?
如果class
不存在用户定义的析构函数,而需要一个,则编译器隐式声明析构函数。什么时候需要声明自己的析构函数?
当隐式声明的析构函数不能做你需要它做的事情时
这有点复杂。你应该查一下"三原则"
如果在构造函数中或之后分配内存,创建对象或其他任何操作,则需要在对象销毁时清理。
当你想确保某事完成时。"某事"通常是关闭网络连接或文件或释放一些内存等。
每次必须在对象销毁时执行特殊任务,即:内存释放、关闭网络连接、减少引用计数、线程同步、抛出存储异常等。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 为什么在使用转换构造函数赋值后调用C++类的析构函数?
- C++成员的析构函数顺序与shared_ptr
- 工会成员的析构函数似乎是自动调用的
- 放置上的析构函数 - 新
- 从 c++ 中派生类的析构函数调用虚函数
- 导致 Seg 错误的 SingleLinkedList 的析构函数
- 如何在 c++ 中的析构函数中正确释放合并 LL 的内存?
- 如何从 Gtk::窗口调用派生对象的析构函数
- typedef 别名的析构函数
- 为什么数组中对象的析构函数在被另一个对象替换时不被调用?
- 在这种情况下,工会成员会调用自己的析构函数吗
- 在元素自己的析构函数中擦除指向静态向量中元素的指针
- 定义自己的析构函数,尽管类派生自QObject
- 如果你的基类有一个虚拟析构函数,你自己的析构函数就会自动变成虚拟的
- 我必须在我自己的析构函数中手动重置shared_ptrs吗?
- 当我需要声明自己的析构函数时
- 什么时候需要声明自己的析构函数?
- 返回的结构调用它自己的析构函数,用于销毁分配的对象
- 在c++中使用a方法而不是类自己的析构函数的任何原因都要清除