类和对象(2)之类的6个默认成员函数(1)

类的6个默认成员函数
上图是类的6个默认成员函数。今天我们主要梳理的是构造函数和析构函数知识。

构造函数

构造函数相当于我们在写一些数据结构的初始化,例如StackInit()函数。起到对数据的初始化

构造函数的语法

1.函数名和类名相同
2.没有返回值(这里的没有返回值指的不是viod而是不写)
3.对象实例化是自动调用对应的构造函数。
4.构造函数可以重载。

注:无参的构造函数不能加括号,原因是:无法区分函数声明

构造函数的特性

1.默认构造函数包括三种:无参数构造函数、全缺省构造函数(最推荐使用的)和编译器自动生成的构造函数
在这里插入图片描述

2.编译器默认生成的构造函数,对内置类型(int/char/double…)不做处理,对自定义类型(class/struct)会去调用它的默认构造函数。(自定义类型的尽头也是内置类型,且如果自定义类型没自己写的默认构造函数,会调用编译器生成的构造函数,也不处理。)
3.c++11,可以在声明位置给缺省值。
在这里插入图片描述
4.全缺省构造函数和无参构造参数不能同时存在。
5.编译器默认生成的构造函数也会被调用,但是什么都不做。

析构函数

析构函数相当于我们写的销毁函数,例如:StackDestory();析构函数并不会销毁对象本身,而是清理资源,如free(),fclose()。

析构函数的语法

1.析构函数名是在类名前加‘~’
2.无参数和返回值类型。
3.一个类只能有一个析构函数,若未定义系统自动生成,且生成也什么都不做。(析构函数不可重载)。
4.对象生命周期结束时,出++编译系统自动调用,如果全局/静态变量会在main结束时调用。

析构函数的特征

1.析构函数要自己写,因为自动生成的什么都不处理。
2.析构函数不是对对象的本身销毁,而是清理资源。
3.析构函数销毁的顺序:先局部→在局部的静态变量→全局/全局的静态变量。(后定义的先析构)

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值