C++11 中推出了三种智能指针,unique_ptr、shared_ptr 和 weak_ptr,同时也将 auto_ptr 置为废弃 (deprecated)。
但是在实际的使用过程中,很多人都会有这样的问题:
- 不知道三种智能指针的具体使用场景
- 无脑只使用 shared_ptr
- 认为应该禁用 raw pointer(裸指针,即 Widget * 这种形式),全部使用智能指针
本文将从这几方面讲解智能指针:
- 智能指针的应用场景分析
- 智能指针的性能分析: 为什么 shared_ptr 性能比 unique_ptr 差
- 指针作为函数参数时应该传,传值、传引用,还是裸指针?