RAII是“資源獲取就是初始化”的縮語(Resource Acquisition Is Initialization),是一種利用對象生命周期來控制程序資源(如內存、文件句柄、網絡連接、互斥量等等)的簡單技術。 RAII 的一般做法是這樣的:在對象構造時獲取資源,接著控制對資源的訪問使之在對象的生命周期內始終保持有效,最后在對象析構的時候釋放資源。借此,我們實際上把管理一份資源的責任托管給了一個對象。這種做法有兩大好處: 1,我們不需要顯式地釋放資源。 2,采用這種方式,對象所需的資源在其生命期內始終保持有效 —— 我們可以說,此時這個類維護了一個 invariant。這樣,通過該類對象使用資源時,就不必檢查資源有效性的問題,可以簡化邏輯、提高效率。