🍅没有废话,直接上车
目录
☃️1.构造函数
一种特殊的成员函数,任务是初始化对象 不是开空间创建对象
在日期类里声明的函数Date就是一个构造函数
定义如上
不难发现,这个函数很奇怪
1.函数名和类名相同
2.无返回值
3.对象实例化时编译器自动调用
4.支持函数重载
5.一个类可以有很多个构造函数
对于刚才三个析构函数,在实例化的时候
发现d3是随机值,此处和默认生成的构造函数一样,对于内置类型(int double)不会初始化
对于自定义类型的成员会初始化
☃️2.析构函数
用于销毁对象动态资源,不是对对象本身销毁,局部对象的销毁工作由编译器完成
比如在栈类,可以把原来Destory的工作放到析构函数,在运行到return语句之前会自动调用析构函数
不难观察出析构函数的特点
1. 函数名为 ~类名
2.无参数无返回值
3.一个类只能有一个析构函数
4.不能重载
5.对象声明周期结束时,C++编译系统系统调用
☃️3.默认生成的构造,析构函数
对象生命周期开始时,编译器会自动寻找构造函数,如果找不到,调用默认生成的构造函数
同样,生命周期结束时,自动寻找析构函数,找不到,调用默认生成的析构函数
特点:
1.内置类型成员不处理(即int double 等不会初始化,是随机值)
2.自定义类型的成员,一定会初始化
默认构造/析构函数包括 不用传参的 全缺省的 编译器默认生成的