C++构造函数和析构函数

1.构造函数

    1.1 基本概念
       在类中函数名与类名完全相同,并且没有返回值类型(连void都没有)的函数,就叫做构造函数;

功能:
    当对象被创建时,会自动调用该函数对对象中的成员变量进行初始化,该函数不能手动调用;


注意:
    当一个类中没有提供任何构造函数时,系统就会自动提供一个无参构造函数(缺省构造函数),但类中只要有自定义构造函数,无论是否有参,则系统都不会再提供任何形式的构造函数;


2.析构函数

2.1.格式:

class Student

{

    ~Student()

    {

        ......... ;

    }

} ;

注意事项:

       (1) 该函数没有参数,也就是意味着不能被重载。

       (2)析构函数主要用于善后处理,栈区对象随着生命周期结束自动调用析构函数;在堆中,随着delete释放时,调用析构函数。

       (3)malloc()和free()不会调用构造函数和析构函数。所以在C++中尽量不用malloc()和free()函数。


2.2.缺省析构函数

(1)对于未定义析构函数的类来说,系统会自动提供一个缺省析构函数,该析构函数会自动调用成员以及基类的析构函数

(2)对于动态分配的内存资源来说,必须通过自定义析构函数进行释放,析构函数中所释放的资源除了动态内存之外,还可以是文件的关闭,socket的关闭以及信号量的销毁等等。


构造和析构的顺序恰好相反


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值