日韩性视频-久久久蜜桃-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 | 99精品一区二区三区无码吞精 | 在线精品视频免费观看 | 精品久久久久久久久久久久久久 | 激情伦成人综合小说 | 成年人黄色免费网站 | 欧美wwwwww| 日本不卡不卡 | 色播放| 樱桃国产成人精品视频 | 国产在线资源 | 精品96久久久久久中文字幕无 | 日日操天天射 | 在线观看日韩 | 久久国产传媒 | 乱人伦xxxx国语对白 | 超碰com | 少妇全黄性生交片 | 一本一本久久a久久精品综合麻豆 | 欧美男女激情 | 欧亚成人av | 日韩一区二区三区在线看 | 国产成人精品一区二区三区福利 | 亚洲狠狠婷婷综合久久久久图片 | 欧美性猛交久久久久 | 天堂一二三区 | 久久高清国产 | 日本呦呦 | 东凛在线观看 | 黄色网页观看 | 在线播放一区 | 黄色网页免费在线观看 | 国产免费激情 | 天天色影网 | 成年人网站在线观看视频 | 91老肥熟 | 在线观看色网站 | 日韩免费淫片 | 亚洲色图50p | 国产xxxx在线观看 | 驯服少爷漫画免费观看下拉式漫画 | 亚洲天堂h | 视频一区国产 | 亚洲国产精一区二区三区性色 | 欧美一区亚洲二区 | 91av在线免费视频 | av中文字幕不卡 | 尤物视频在线观看 | 欧美激情五月 | 日本wwww色 | xxxx毛片 | 国产一区二区精彩视频 | 久久77777 | 深夜激情网 | 亚洲欧美在线视频观看 | 一区二区三区在线不卡 | 97爱视频 | 中文字幕无码乱码人妻日韩精品 | 美女精品一区 | 91久久网 | 乱一色一乱一性一视频 | 看成人片| 岛国av在线免费 | 国产精品一区二区不卡 | 亚洲色图在线观看视频 | 放荡闺蜜高h季红豆h | 天天草综合 | 亚洲黄网站在线观看 | 啄木乌欧美一区二区三区 | 欧美一区二区三 | 日韩视频在线观看 | 欧美一区二区三区精品 | 欧美女优在线观看 | 日韩精品麻豆 | 欧美精品乱码视频一二专区 | 欧美首页 | 我们2018在线观看免费版高清 | 又黄又骚又爽 | 狂野欧美性猛交blacked | 色综合啪啪 | 美女免费福利视频 | 日韩女同互慰一区二区 | 亚洲制服在线观看 | 久久精品视频3 | 哪里可以看毛片 | 亚洲第一精品在线 | 青草青草久热 | 色七七桃花综合影院 | 亚洲欧美色图片 | 亚洲视频自拍偷拍 | 日韩久久一区二区三区 | 精品综合 | 老版水浒传83版免费播放 | 草碰在线 | 日本大尺度电影免费观看全集中文版 | 日韩不卡在线观看 | 人妻互换一区二区激情偷拍 | 7777久久亚洲中文字幕 |