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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

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

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

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

文章目錄

    • C++中各種智能指針的實現及弊端(二)
    • 一:實現auto_ptr
    • 二、auto_ptr的問題及解決辦法

一:實現auto_ptr

C ++98版本的庫中提供了auto_ptr的智能指針:
auto_ptr文檔

// C++庫中的智能指針都定義在memory這個頭文件中 #include <memory> class Date { public:Date() { cout << "Date()" << endl;}~Date(){ cout << "~Date()" << endl;}int _year;int _month;int _day; };int main() {auto_ptr<Date> ap(new Date);auto_ptr<Date> copy(ap);// auto_ptr的問題:當對象拷貝或者賦值后,前面的對象就懸空了// C++98中設計的auto_ptr問題是非常明顯的,所以實際中很多公司明確規定了不能使用 auto_ptrap->_year = 2018;return 0; }
  • auto_ptr的實現原理:管理權轉移的思想,下面簡化模擬實現了一份AutoPtr來了解它的原理
// 模擬實現一份簡答的AutoPtr,了解原理 template<class T> class AutoPtr { public:AutoPtr(T* ptr = NULL): _ptr(ptr){}~AutoPtr(){if(_ptr)delete _ptr;}// 一旦發生拷貝,就將ap中資源轉移到當前對象中,然后另ap與其所管理資源斷開聯系,// 這樣就解決了一塊空間被多個對象使用而造成程序奔潰問題AutoPtr(AutoPtr<T>& ap): _ptr(ap._ptr){ap._ptr = NULL;}AutoPtr<T>& operator=(AutoPtr<T>& ap){// 檢測是否為自己給自己賦值if(this != &ap){// 釋放當前對象中資源if(_ptr)delete _ptr;// 轉移ap中資源到當前對象中_ptr = ap._ptr;ap._ptr = NULL;}return *this;}T& operator*() {return *_ptr;}T* operator->() { return _ptr;} private:T* _ptr; };int main() {AutoPtr<Date> ap(new Date);// 現在再從實現原理層來分析會發現,這里拷貝后把ap對象的指針賦空了,導致ap對象懸空// 通過ap對象訪問資源時就會出現問題。AutoPtr<Date> copy(ap);ap->_year = 2018;return 0; }

二、auto_ptr的問題及解決辦法

原理:

  • 缺陷:一旦發生拷貝后,就只能有一個對象可以操縱他們所管理的資源,因為原對象已經斷開和資源的鏈接
  • 解決辦法:可以引入一個變量控制資源的釋放權,即不斷開就對象和資源的聯系,發生拷貝時,讓就對象無法獲得資源釋放權即可,具體代碼自己實現,這個比較簡單,加一個bool類型的成員變量即可

但是采用上面的解決方法仍然有缺陷:

  • 可能會造成野指針問題

總結

以上是生活随笔為你收集整理的C++中各种智能指针的实现及弊端(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 开心激情站 | 国产欧美精品一区二区 | av综合一区 | 麻豆一区产品精品蜜桃的特点 | 被黑人各种姿势猛c哭h文1 | 国产精品久久久久久免费 | 区一区二区三 | 国产在线视频网站 | 婷婷中文 | 艳母日本动漫在线观看 | asian日本肉体pics | 波多野吉衣av无码 | 美女黄色片网站 | 日本泡妞xxxx免费视频软件 | 国产精品一区二区久久毛片 | 久久久一区二区 | 黄色小视频在线免费看 | 性生交大片免费看女人按摩 | 久久久久久久影院 | 91av不卡 | www.久久av | 翔田千里一区二区三区av | 极度诱惑香港电影完整 | 久久久久久不卡 | 久久国产色av免费观看 | 黄色国产在线 | 熟女人妻一区二区三区免费看 | 成人在线免费网址 | 免费看的毛片 | 欧美一区二区在线免费观看 | 国产网站免费观看 | 国产69av| 久久精品黄色 | 久久伊人影视 | 成人免费网站黄 | 清纯唯美亚洲激情 | 永久免费网站直接看 | 一级黄片毛片 | 亚洲视频一区二区三区四区 | 欧美精品一区二区三区久久 | 久久久久久久国产 | 日韩av高清在线观看 | 欧美一区二区视频在线 | 丝袜熟女一区二区三区 | 国产字幕av | 姐姐的秘密韩剧免费观看全集中文 | 性色一区 | 老熟妇一区二区 | 欧美日韩免费一区二区 | 亚洲成人精品久久久 | 国产在线成人精品午夜 | 日本欧美一级片 | 中文字幕超清在线免费观看 | 国产淫片av片久久久久久 | av色网站 | 日本黄色片. | 一区二区三区小视频 | 色猫咪av | 欧美一区二区三区视频 | 日韩av三级在线 | 久草青青视频 | 欧美日韩一区二区三 | 国精产品一二三区精华液 | 久久夜精| 欧美三级三级三级爽爽爽 | 国产精品刘玥久久一区 | 嫩嫩av| 欧美男人操女人 | 亚洲黄av | 日韩成人高清在线 | 国产绿帽刺激高潮对白 | 国产a√精品区二区三区四区 | 可以免费观看的av | 人妻偷人精品一区二区三区 | 欧美片在线观看 | 欧美顶级metart裸体全部自慰 | 亚洲国产精品久久精品怡红院 | 日本激情网址 | 色呦呦在线观看视频 | 91av手机在线 | 亚洲成人播放器 | 国产免费不卡视频 | 成人国产一区二区 | 成人性生交大片免费看vrv66 | 欧美国产日韩一区二区三区 | 免费一级特黄特色大片 | 亚洲xxxx视频 | 天天色天天爽 | 美女毛毛片 | 国产成人精品免费 | 蜜臀久久精品久久久用户群体 | 亚洲美女中文字幕 | 日本丰满少妇做爰爽爽 | 日欧一级片 | 性——交——性——乱免费的 | 精品一区李梓熙捆绑 | 麻豆免费网站 | 日韩爱爱网 | 91色在线|