天天看點

C++ 以對象管理資源

C++中使用到的資源可能很多,并且一些資源擷取後還必須釋放歸還給系統, 列舉幾個如:

1. 打開的檔案句柄

2. 資料庫連接配接

3. 互斥鎖

4. 動态配置設定new出來的記憶體

5. 網絡socket連接配接

 C++中有智能指針,比如shared_ptr,可以自動釋放指針指向的資源。

這裡不詳細說shared_ptr用法。

而是自己實作一個以對象管理資源的例子。

例子:線程互斥鎖的加鎖、解鎖。

1. 利用對象到構造函數,析構函數來自動完成加鎖、解鎖。将編譯器預設提供的無用函數禁用掉。

2. 線程執行函數

3. 整體代碼

C++ 以對象管理資源
C++ 以對象管理資源

View Code

c++智能指針可以參考網上的例子:

http://www.cnblogs.com/lanxuezaipiao/p/4132096.html

繼續閱讀