动态内存与智能指针

来源:互联网 发布:曲面显示器优缺点知乎 编辑:程序博客网 时间:2024/05/03 16:16

在c++中,动态内存的管理是通过一对运算符来完成的:new,在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;delete,接受一个动态对象指针,销毁该对象并释放与之关联的内存。
动态内存在使用时很容易出问题,有时会忘记释放内存,造成内存泄露,有时在尚有指针引用内存的情况下就释放了内存,导致产生引用非法内存的指针。
为了更容易(同时也更安全)第使用动态内存,新的标准库提供了两种智能指针(smart pointer)类型来管理动态内存对象。只能指针的行为类似常规指针没重要的区别是他负责自动释放所指向的对象。新的标准库提供的这两种智能指针的区别在于管理底层指针的方式:shared_ptr允许多个指针指向同一个对象;unique_ptr则独占所指向的对象。标准库还定义了一个名为weak_ptr的伴随类,他是一种弱引用,指向shared_ptr所管理的对象。这三种类型都定义在memory头文件中。

0 0
原创粉丝点击