在阅读 Effective C++时,对RAII开始不理解,现总结以下:
RAII是Resource acquisition is initialization的缩写形式,即“资源获取就是初始化”,是C++等编程语言经常使用的管理资源、避免内存泄露的方法。它保证在任何状况下,使用对象时先构造对象,最后析构对象。
根据RAII 对资源的全部权可分为常性类型和变性类型,表明者分别是boost::shared_ptr和std::auto_ptr;从所管资源的初始化位置上可分为外部初始化类型和内部初始化类型。编程
常性类型是指获取资源的地点是构造函数,释放点是析构函数,而且在这两点之间的一段时间里,任何对该RAII类型实例的操纵都不该该从它手里夺走资源的全部权。变性类型是指能够中途被设置为接管另外一个资源,或者干脆被置为不拥有任何资源。外部初始化类型是指资源在外部被建立,并被传给RAII实例的构造函数,后者进而接管了其全部权。boost:shared_ptr和std::auto_ptr都是此类型。与之相对的是内部初始化类型。编程语言
对于RAII在 Effective C++的第三部分(对象管理资源)条款1三、1四、15对RAII以及shared_ptr和std::auto_ptr有具体的介绍,还会关系到其余的条款内容,具体能够参加原书内容,此处再也不赘述!函数
不足与提升之处:对Boost库和STL库的理解仍是有限,还须要进一步深刻研究;
ui