日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++中各种智能指针的实现及弊端(三)

發布時間:2024/4/11 c/c++ 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++中各种智能指针的实现及弊端(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++中各種智能指針的實現及弊端(三)

文章目錄

  • C++中各種智能指針的實現及弊端(三)
    • 一: std::unique_ptr
    • 二、**std::unique_ptr的缺陷**

一: std::unique_ptr

C++11中開始提供更靠譜的unique_ptr
std::unique_ptr文檔

int main() {unique_ptr<Date> up(new Date);// unique_ptr的設計思路非常的粗暴-防拷貝,也就是不讓拷貝和賦值。unique_ptr<Date> copy(ap);return 0; }

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++中各种智能指针的实现及弊端(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。