析构函数

与构造函数不同,析构函数是为了确保已分配的值完全准备好释放其内存。析构函数是名为类名,无参数且无返回类型的成员函数。与构造函数相同的是,从不直接调用析构函数,而是在销毁值时隐式调用。下列情况下调用析构函数:

程序块结尾,为所有局部变量调用析构函数。

函数结尾,为参数调用析构函数。

语句结尾,为命名或匿名的局部变量调用析构函数。

删除动态分配的值时,回收内存前调用析构函数。

main函数终止时,为所有静态局部变量和全局变量调用析构函数。

删除对象变量时,为所有数据域调用析构函数。

删除派生类对象变量时,调用基类的析构函数。

有异常抛出且还有未执行的程序块时,为局部变量调用析构函数。

析构函数的功能是完成丢弃数值前所需要的内务处理任务。这包括释放动态分配的内存以避免内存泄漏,关闭文件或释放其他系统资源。如果没有析构函数,系统会自动生成默认析构函数。但它的函数体为空:不执行任何操作。几乎每个类都需要初始化,但只有当对象需要某种资源管理时才需要析构函数。

定义如下:

类名::~类名()

{

    语句

}

示例:String::~String()

            {

                 delete[] buffer;

            }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值