- 0
- 0
- 约1.05万字
- 约 12页
- 2026-07-07 发布于北京
- 举报
很多人怕写C/C++程序就是因为指针,因为指针给了程序员高度的自由,同样也赋予了高
度的责任,稍有不慎就导致内存泄漏。其实写C++可以完全不用指针,尤其C++11对智
能指针作了进一步的升级,在不需要使用任何裸指针的前提下也可以写出高效的C++程序。
C++11中定义了unique_ptr、shared_ptr与weak_ptr三种智能指针(smartpointer),都包含
在memory头文件中。智能指针可以对动态分配的资源进行管理,保证任何情况下,已构
造的对象最终会销毁,即它的析构函数最终会被调用。
unique_ptr
如名字所示,unique_ptr是个独占指针,C++11之前就已经存在,unique_ptr所指的内存
为自己独有,某个时刻只能有一个unique_ptr指向一个给定的对象,不支持拷贝和赋值。下
面以代码样例来说明unique_ptr的用法,各种情况都在代码注释给出。
#includeiostream
#includestring
#includememory
#includevector
#includemap
voidtest()
{
std::unique_ptrintup1(newint(11));//无法的u
原创力文档

文档评论(0)