类的动态分配new/delete

1. 概念

类比于学习指针的时的mallocfree

new返回的是一个数据类型或者类的指针变量

2. 语法

指针变量=new 数据类型或者类名();//相当于构造函数的使用
delete 指针变量;指针变量=nullptr;//一般删除空间之后习惯把指针变为空指针,避免后续不安全的麻烦

2.1 数组的动态分配

ptr_array=new int[40];
delete[] ptr_array;//如果没有中括号删除的是元素0

3. 浅复制和深复制

  • 浅复制:类中的基础数据变量进行值的复制,指针变量也只是复制出另外一个指针变量,并没有开辟新的内存空间;(造成的效果:会有两个指针变量指向同一个内存地址
  • 深复制:返回的指针变量是new出来的一个指针变量,会有额外的内存空间给他指向,并且内存空间带的数据相同;(需要自己重写拷贝构造函数,缺省时默认为浅复制
  • PS:在函数传参的时候会发生一次拷贝,这节跟浅复制和深复制有关了;

3.1 拷贝构造函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值