【C++】六个默认成员函数——初始化和清理

文章详细介绍了C++中的构造函数和析构函数。构造函数用于初始化对象,其特点包括与类名相同、无返回值、编译器自动调用并支持重载。析构函数则用于销毁对象的动态资源,不破坏对象本身,它具有独特的函数名前缀和唯一性。默认构造函数和析构函数在对象生命周期开始和结束时自动调用,对内置类型和自定义类型成员进行不同处理。
摘要由CSDN通过智能技术生成

🍅没有废话,直接上车

目录

☃️1.构造函数

☃️2.析构函数

☃️3.默认生成的构造,析构函数


☃️1.构造函数

一种特殊的成员函数,任务是初始化对象 不是开空间创建对象

在日期类里声明的函数Date就是一个构造函数

 定义如上

不难发现,这个函数很奇怪

1.函数名和类名相同

2.无返回值

3.对象实例化时编译器自动调用

4.支持函数重载

5.一个类可以有很多个构造函数

 对于刚才三个析构函数,在实例化的时候

发现d3是随机值,此处和默认生成的构造函数一样,对于内置类型(int double)不会初始化

对于自定义类型的成员会初始化

☃️2.析构函数

用于销毁对象动态资源,不是对对象本身销毁,局部对象的销毁工作由编译器完成

 

比如在栈类,可以把原来Destory的工作放到析构函数,在运行到return语句之前会自动调用析构函数

不难观察出析构函数的特点

1. 函数名为 ~类名

2.无参数无返回值

3.一个类只能有一个析构函数

4.不能重载

5.对象声明周期结束时,C++编译系统系统调用

☃️3.默认生成的构造,析构函数

对象生命周期开始时,编译器会自动寻找构造函数,如果找不到,调用默认生成的构造函数

同样,生命周期结束时,自动寻找析构函数,找不到,调用默认生成的析构函数

特点:

1.内置类型成员不处理(即int double 等不会初始化,是随机值)

2.自定义类型的成员,一定会初始化

默认构造/析构函数包括 不用传参的  全缺省的 编译器默认生成的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值