正文
1. 自己實(shí)現(xiàn)一個(gè)資源管理類
Item 13中介紹了 “資源獲取之時(shí)也是初始化之時(shí)(RAII)”的概念,這個(gè)概念被當(dāng)作資源管理類的“脊柱“,也描述了auto_ptr和tr1::shared_ptr是如何用堆資源來表現(xiàn)這個(gè)概念的。然而并不是所有資源都是在堆上創(chuàng)建的,對(duì)于這種資源,像auto_ptr和tr1::shared_ptr這樣的智能指針就不適合當(dāng)作資源句柄(handle)來使用了。你會(huì)發(fā)現(xiàn)你時(shí)不時(shí)的就會(huì)需要?jiǎng)?chuàng)建自己的資源管理類。
舉個(gè)例子,假設(shè)你正在使用C API來操縱Mutex類型的互斥信號(hào)量對(duì)象,來為函數(shù)提供lock和unlock:
1 void lock(Mutex *pm); // lock mutex pointed to by pm2 3 void unlock(Mutex *pm); // unlock the mutex
為了確保你不會(huì)忘記unlock一個(gè)已經(jīng)加過鎖的Mutex,你需要?jiǎng)?chuàng)建一個(gè)類來管理鎖。這樣一個(gè)類的基本結(jié)構(gòu)已經(jīng)由RAII準(zhǔn)則表述過了,也就是資源會(huì)在執(zhí)行構(gòu)造的時(shí)候獲取到,在執(zhí)行析構(gòu)的時(shí)候釋放掉:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26