什么是析构函数?
析构函数是一个破坏或删除对象的成员函数。
~constructor-name();
析构函数的属性:
什么时候调用析构函数?
当对象超出范围时,将自动调用析构函数:
(1)函数结束
(2)程序结束
(3)包含局部变量的块结束
(4)调用删除运算符
一个类中可以有多个析构函数吗?
不可以,一个类中只有一个析构函数,其类名前面带有?,没有参数,没有返回类型。
什么时候需要编写用户定义的析构函数?
如果我们不在类中编写自己的析构函数,则编译器会为我们创建一个默认的析构函数。除非我们在类中动态分配了内存或指针,否则默认析构函数可以正常工作。当一个类包含指向在该类中分配的内存的指针时,我们应该编写一个析构函数以释放该类实例之前的内存。必须这样做以避免内存泄漏。
析构函数可以是虚拟的吗?
是的,实际上,当我们具有虚函数时,在基类中使析构函数虚拟是一个好主意。
更多详细资料:见C ++中的析构函数
原文:https://www.cnblogs.com/strive-sun/p/14467800.html