C++的构造/析构/拷贝构造/复制构造

本文介绍了C++中的四个关键函数:析构、构造、拷贝构造和赋值构造。析构函数在类结束时调用,最多执行一次。文章详细阐述了这些函数的作用,并给出了拷贝构造和赋值构造的使用建议。
摘要由CSDN通过智能技术生成

四个函数都是C++类中的隐藏函数,析构是类结束时所调用,在一个类的创建销毁过程中***最多***执行一次(也有可能不执行,主函数的结束会导致类占用的空间直接被释放)。

析构函数

~类名(void)
{
}
析构函数
析构函数没有返回值也不需要参数,因此析构函数也不可以重载
与构造函数正好相反
先释放自身的资源
再调用成员的析构函数
最后调用父类的析构函数
如果一个类没实现析构函数,编译器会自动生成一个具有析构函数功能的二进制指令,这就是缺省析构。它负责释放编译器能够看得到的资源(成员变量、类成员、父类成员)
注意:缺省析构无法释放动态资源(堆内存)
如果一个类没有动态资源,也不需要做善后工作,缺省析构就完全够用了

构造函数

类名()
{
}
1、构造函数可以被重载(函数的多个版本)
、缺省构造,编译器自动生成的一个什么都不做的构造函数(唯一的作用就是避免编译错误)。
注意:当类中实现一个有参造时,缺省构造就不会再自动生成,如果有需要,必须显式地写出来。
3、无参构造未必无参,当给有参构造的所有参数设置默认形参,调用这种构造函数就不需要传参。
 	注意:所谓的"编译器生成的某某函数"其实不是真正语法意义上的函数,而是功能意义的函数,编译器作为可执行指令的生成者,它会直接生成具有某项功能的二进制指令,不需要借助高级语言语义上的函数完成此任务。
 注意:如果一个类A是其他类B成员变量,那么一定要保证它有一个无参构造函数,当B的构造函数执行时会先执行成员变量的无参构造,而
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值