构造函数和析构函数

构造函数

构造函数的功能是,在创建对象时使用给定的值将对象初始化

特点:

1、构造函数时成员函数,函数体可放在类体内或类体外;

2、构造函数是一个特殊的函数,该函数的名字和类名相同,且不指定类型说明,它有隐含的返回值,该值由系统内部使用,可以有一个或多个参数;

3、构造函数可以重载,即可以定义多个参数不同的函数;

4、程序中不能直接调用构造函数,在创建对象时系统自动调用构造函数。

不带任何参数的构造函数韦默认构造函数。如果一个类中没有定义任何构造函数,则编译系统会自动生成一个不带参数的默认构造函数。


拷贝初始化构造函数

特点:

1、函数名同类名,因为它也是一种构造函数,并且该函数也不指定返回类型;

2、函数只有一个参数,是对某个对象的引用

3、每个类都必须由一个拷贝初始化构造函数,通常在参数前加const。

需要拷贝初始化构造函数用一个对象初始化另一个对象的情况如下:

1、明确表示由一个对象初始化另一个对象时;

2、当对象作为函数实参传递给形参时;

3、当对象作为函数返回值。


析构函数

析构函数的功能是用来释放一个对象。与构造函数正好相反。

构造函数和析构函数都没有返回值;

构造函数可以带参数也可以重载,析构函数不能带参数,也不能重载;

特点:

1、析构函数是成员函数,函数体可以放在类体内或类体外;

2、析构函数的名字同类名,前面加~,析构函数不指定数据类型,也没有参数;

3、一个类中最多只有一个析构函数;

4、析构函数可以被调用,也可以由系统调用。

自动调用:

1、如果一个对象被定义子啊一个函数体内,则当这个函数结束时,该对象的析构函数被自动调用;

2、使用new运算符动态创建一个对象后,使用delete运算符释放它时,delete会自动调用析构函数。

如果类中没有定义析构函数,则编译系统会自动生成一个默认的析构函数。

调用析构函数的顺序和构造函数的正好相反!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值