C++中各种智能指针的实现及弊端(三)
生活随笔
收集整理的這篇文章主要介紹了
C++中各种智能指针的实现及弊端(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++中各種智能指針的實現及弊端(三)
文章目錄
- C++中各種智能指針的實現及弊端(三)
- 一: std::unique_ptr
- 二、**std::unique_ptr的缺陷**
一: std::unique_ptr
C++11中開始提供更靠譜的unique_ptr
std::unique_ptr文檔
unique_ptr的實現原理:簡單粗暴的防拷貝,下面簡化模擬實現了一份UniquePtr來了解它的原理
// 模擬實現一份簡答的UniquePtr,了解原理 template<class T> class UniquePtr { public:UniquePtr(T * ptr = nullptr): _ptr(ptr){}~UniquePtr(){if(_ptr)delete _ptr;}T& operator*() {return *_ptr;}T* operator->() {return _ptr;}private://這里把成員函數設為私有的目的是防止用戶自己在類外進行實現// C++98防拷貝的方式:只聲明不實現+聲明成私有UniquePtr(UniquePtr<T> const &);UniquePtr & operator=(UniquePtr<T> const &);// C++11防拷貝的方式:deleteUniquePtr(UniquePtr<T> const &) = delete;UniquePtr & operator=(UniquePtr<T> const &) = delete; private:T * _ptr; };二、std::unique_ptr的缺陷
- 沒有構造刪除器,上面實現的只能釋放new出來的空間,不能釋放malloc出來的空間和文件流指針等
總結
以上是生活随笔為你收集整理的C++中各种智能指针的实现及弊端(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++中各种智能指针的实现及弊端(二)
- 下一篇: C++中各种智能指针的实现及弊端(五)