类的构造、析构、拷贝、移动函数

一、类的构造函数和析构函数

类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。

构造函数的作用:为对象分配空间;对数据成员赋初值;请求其他资源。

构造函数的特点:

  1. 构造函数的名称与类的名称是完全相同的,并且没有返回值。
  2. 没有用户定义的构造函数时,系统提供缺省版本的构造函数。
  3. 构造函数可以重载。

类的析构函数是用于取消对象的成员函数 , 当一个对象作用域结束时,系统自动调用析构函数。

析构函数的作用:进行清除对象,释放内存等

析构函数的特点:

  1. 析构函数的名称与类的名称相同,前面多一个~,并且没有返回值。
  2. 没有用户定义的析构函数时,系统提供缺省版本的析构函数。
  3. 析构函数没有参数,也没有返回类型,不可以重载。

构造函数 类的初始化

析构函数 类的销毁(~)

当在栈上创建内存的时候调用构造;

当执行return的时候,栈上的内存要释放,那么它就去调用析构。

变成指针的时候,它的内存去哪了?

本身我没有去释放,它泄漏掉了!泄漏的不只是这里还有p也泄漏了

不调用析构函数,会造成构造函数泄漏。

但本质上说没有释放,但是return 0之后整个程序都结束了,结束后操作系统会把你用过的所有内存全部回收掉。

程序允许中讲泄漏。

主动地通过delete释放内存,同时调用析构函数,在析构函数里面会将我们构造函数动态生成的内存释放掉。

拷贝构造:目的是为了拷贝;

移动构造:目的是为了移动,移动构造调用后原对象会自动被释放

析构函数中的释放内存需要判断p是否为空,如果为空,则不需要释放;如果不为空则释放内存。

移动构造需要添加std::move()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴走☆苍穹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值