首頁  >  文章  >  後端開發  >  C++學習之RAII程式設計思想

C++學習之RAII程式設計思想

黄舟
黄舟原創
2017-02-06 14:07:271883瀏覽

背景介紹

在C++程式運作的過程中免不了要進行資源的分配-尤其是在遊戲中!資源可以有很多中,從紋理、聲音、著色器程式碼到句柄、字串這些東西都可以稱為資源。資源的管理是專案中很重要的一輪,做得不好的話輕則記憶體洩漏、重則記憶體崩潰。 RAII則是在C++專案中用於資源管理的一種重要的程式設計思想。


先說一點C++

C++中不可或缺的東西就是class,而每個class不可或缺的就是建構函式和析構函式。前者用於物件被建構時進行的一系列操作,後者用於物件被析構時所執行的函數。


而值得一提的是,在C++中,如果一個類別被宣告在堆疊空間,則在該函數執行完畢從堆疊空間彈出之後,類別會自動呼叫析構函數。可是如果被顯示宣告在堆空間(使用new方法或malloc方法),則需要顯示呼叫delete或free函數才能進行析構。


以上就是要讀懂這篇部落格所需的C++知識,應該不難吧…


總體概念

C++一種悠久而自豪的傳統吧2333333。


RAII是一個很典型的例子,它表示的是「資源獲取即初始化」(Resource Aquisition Is Initialization),而不是某些人認為的「初始化即資源獲取」(Initialization is resource acquisition)。 BTW,想搞怪,就怪到底吧,不然達不到效果。


RAII的技術很簡單,利用C++物件生命週期的概念來控製程式的資源。它的技術原理很簡單,如果希望對某個重要資源進行跟踪,那麼創建一個對象,並將資源的生命週期和對象的生命週期相關聯。這樣一來C++自備的物件管理設施就可以來管理資源了。


...


以上就是C++學習之RAII程式設計思想的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn