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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

智能指针引用计数器版

發(fā)布時(shí)間:2025/4/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 智能指针引用计数器版 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前些日子,寫過一個(gè)普通的智能指針,模擬的是boost中的auto_ptr,今天又寫了一個(gè)關(guān)于boost中的share_ptr,引用計(jì)數(shù)器智能指針,感覺還行,功能基本實(shí)現(xiàn),設(shè)計(jì)思想基本上是這么一回事,智能指針類管理資源,引用計(jì)數(shù)器類管理是否有多個(gè)智能指針指向同一個(gè)資源,如果有為這個(gè)資源設(shè)一個(gè)引用計(jì)數(shù)器,計(jì)數(shù)器值表示有多少個(gè)智能指針在使用這個(gè)資源,一旦有一個(gè)智能指針準(zhǔn)備釋放這個(gè)資源,僅僅對計(jì)數(shù)器減一,只有當(dāng)沒有智能指針指向這個(gè)資源,才真正的釋放資源,當(dāng)然你也可以強(qiáng)制讓所有的智能指針釋放這個(gè)資源,直接delete掉資源,然后將所有的智能指針delete掉。

下面是我代碼:

#include <iostream>using namespace std;class Test { private:int n; public:Test(int m):n(m){}~Test(){ cout<<"Test destructor function is called\n"; }void get(){ cout<<"Test get() is called\n"; } };class CountPtr { public:Test* ptr;int usecount; public:CountPtr(Test* p):ptr(p){usecount = 1;cout<<"CountPtr constructor function is called\n";}~CountPtr(){ cout<<"CountPtr destructor function is called\n"; delete ptr; }};class SmartPtr { private:CountPtr* ptr; public:SmartPtr(Test* p){ cout<<"SmartPtr constructor function is called\n";ptr = new CountPtr(p);}~SmartPtr(){ptr->usecount--;if(ptr->usecount == 0) //只有所有的智能指針都釋放資源,才能將資源delete掉{cout<<"SmartPtr destructor function is called\n";delete ptr;}}SmartPtr(const SmartPtr& p) //智能指針拷貝構(gòu)造函數(shù),因?yàn)橛辛丝截悩?gòu)造函數(shù)才使其他的智能指針才能共享資源,不過這個(gè)是針對淺拷貝,深拷貝可以無視{cout<<"SmartPtr copy constructor function is called\n";ptr = p.ptr;ptr->usecount++;}SmartPtr& operator=(const SmartPtr& p) //智能指針賦值構(gòu)造函數(shù),因?yàn)橛辛速x值構(gòu)造函數(shù)才使其他的智能指針才能共享資源,不過這個(gè)是針對淺拷貝,深拷貝可以無視{cout<<"SmartPtr assign constructor function is called\n";if(this == &p)return *this;ptr->usecount--;if(ptr->usecount == 0){delete ptr;ptr = NULL;}ptr = p.ptr;return *this;}Test* operator->(){ return ptr->ptr;} };int main() {{SmartPtr ptr(new Test(8));ptr->get();SmartPtr p1 = ptr;SmartPtr p2(new Test(7));p2 = ptr; }return 0; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/GODYCA/archive/2013/01/19/2868112.html

總結(jié)

以上是生活随笔為你收集整理的智能指针引用计数器版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产女人18毛片水18精 | 午夜影院免费在线观看 | 国产欧美精品在线观看 | 800av在线视频| 午夜精品久久久久久久99热浪潮 | 国产在线视频第一页 | 天天曰天天爽 | 国精品一区二区 | 爱就操| 男女男精品视频 | 久久好色| 日韩电影三级 | 少妇2做爰hd韩国电影 | 91亚洲影院 | 欧美黄大片 | 男人天堂1024| 日本一本二本三区免费 | 夜夜爽夜夜叫夜夜高潮漏水 | 国产午夜视频在线 | 一区二区色 | 高跟鞋av | 青青在线免费观看 | 久久一区av | 人人做人人爱人人爽 | 国产一区二区小说 | 黄色一级图片 | 蜜臀av一区二区三区 | 国产精品不卡av | 在线观看无遮挡 | 免费av电影网址 | 国产一区二区三区在线看 | 天堂在线1 | 6080亚洲精品一区二区 | 韩日精品中文字幕 | 亚洲va国产天堂va久久 en | 免费观看黄色网址 | 寻找身体恐怖电影免费播放 | 夫妻自拍偷拍 | 色屁屁草草影院ccyycom | 视频二区 | 亚洲影院一区二区三区 | 久久高清毛片 | 四色成人av永久网址 | 久久综合丁香 | 国产亚洲制服 | 亚洲gay视频 | 国产成人精品综合在线观看 | 99热麻豆| 国产免费中文字幕 | 日韩av影音先锋 | 国产精品一区二区麻豆 | 人人干超碰 | 国产手机在线 | 日本成人在线播放 | 日本中文字幕视频在线 | 天天干夜夜 | 国产精品扒开腿做爽爽爽男男 | 日韩黄色免费 | 亚洲同性gay激情无套 | 国产高清久久久 | 日日夜夜人人 | 成人3d动漫在线观看 | 久久久久国产综合av天堂 | 精品视频91 | a毛片大片 | 好看的中文字幕av | 在线午夜av | 久久不射网站 | 国产乱妇乱子 | 黄色福利在线观看 | 日韩一中文字幕 | 日本久久久久久久久久久 | 亚洲熟妇av日韩熟妇在线 | 超碰中文字幕 | 久久福利网站 | 少妇高潮灌满白浆毛片免费看 | 国产性按摩 | 星空大象mv高清在线观看免费 | 蜜桃视频一区二区三区在线观看 | 亚洲视频一区二区 | 久久婷婷av| 亚洲国产精品久久久久婷婷老年 | 黄色一级大片免费看 | 日产精品久久久久久久蜜臀 | 看黄色大片 | 反差在线观看免费版全集完整版 | 国产免费看片 | 午夜亚洲福利 | 亚洲激情网站 | 最新国产三级 | 成人av一级 | 精品国产免费无码久久久 | 伊人一区二区三区四区 | 亚洲aⅴ在线观看 | 四虎永久免费在线观看 | 日本www色视频 | 免费看特级毛片 | 成人日韩在线观看 | 在线成人影视 |