#析构函数

析构函数在C++中用于对象生命周期结束时进行善后处理。它无返回类型,名称以波浪线开头,与类名相同。系统自动调用析构函数,也可自调用。与构造函数不同,析构函数可以被多次调用。本文探讨了析构函数的使用场景,包括局部对象、静态局部对象和动态创建对象的析构。动态分配的一组对象在释放时需要调用析构函数n次来释放所有对象,然后释放内存。
摘要由CSDN通过智能技术生成

 定义:

当定义一个对象时,C++自动调用构造函数建立该对象并进行初始化,那么当一个对象的生命周期结束时,C++也会自动调用一个函数注销该对象并进行善后工作,这个特殊的成员函数即析构函数(destructor):

1.析构函数名与类名相同,但在前面加上字符‘~’,如:~CGoods()。

2.析构函数无函数返回类型,与构造函数在这方面是一样的。但析构函数不带任何参数。

3.一个类有一个也只有一个析构函数,这与构造函数不同。

4.对象注销时,系统自动调用析构函数。

5.如果类说明中没有给出析构函数,则C++编译器自动给出一个缺省的析构函数。

与构造函数最大的不同点在于:构造函数只能由系统调用且只能调用一次,不能自己调用自己。

而析构函数可以自己调用自己。

int main()
{
   Complex cs(1,2);
  cs.~Complex();     //一般不要自己调用析构函数  因为系统不能记录调用的次数


}

构造函数是在创建对象的时候获取资源;

析构函数是在释放对象在生存时候调用的资源,主要是堆区资源;

析构函数也能接收到this指针。

class MyString

{

     private:

         File * fp;

     public:

         MyString()

       {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值