C++學習之RAII編程思想

來源:互聯網
上載者:User
背景介紹

在C++程式啟動並執行過程中免不了要進行資源的分配——尤其是在遊戲中!資源可以有很多中,從紋理、聲音、著色器代碼到控制代碼、字串這些東西都可以被稱為資源。資源的管理是項目中很重要的一輪,做得不好的話輕則記憶體流失、重則記憶體崩潰。RAII則是在C++項目中用於資源管理的一種重要的編程思想。


先說一點C++

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


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


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


總體概念

C++有很多很奇葩的名字,比如yacc,raii等,這算是一種悠久而自豪的傳統吧2333333。


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


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


...


以上就是C++學習之RAII編程思想的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.