正文

回到頂部

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í)候釋放掉

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

        		

網(wǎng)友評(píng)論