c++中的内存分配和智能指针

1、静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量
2、栈内存用来保存定义在函数内的非static对象。分配在静态或栈内存中的对象由编译器自动创建和销毁
3、堆内存,存储动态分配的对象
4、两种智能指针shared_ptr允许多个指针指向同一个对象,unique_ptr则独占所指向的对象。
     标准库中定义的一个名为week_ptr的伴随类,一种弱引用,指向shared_ptr所管理的对象。都定义在memory头文件


5、shared_ptr和unique_ptr都支持的操作
    【1】shared_ptr<T>sp   空只能指针,指向类型为T的对象
    【2】unique_ptr<T>up  
    【3】p                           p用作条件判断,若p指向一个对象,则为true
    【4】*p                         解引用、获取它指向的对象
    【5】p->mem               等价于(*p).mem
    【6】p.get()                  返回p中保存的指针 ,若智能指针释放了其对象,返回的指针所指向的对象也就消失了
    【7】swap(p,q)              等价p.swap(q)交换p和q指针
6、shared_ptr独有的操作
     【1】make_shared<T>(args)             返回一个shared_ptr,指向一个动态分配的类型为T的对象。使用args初始化此对象
     【2】shared_ptr<T>p(q)                    p是q的拷贝;递增q中的计
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值