结论1:复制RAII对象必须一并复制它所管理的资源,所以资源的copying行为决定RAII对象的copying行为。
结论2:普遍而常见的RAII class copying行为是:
(1)抑制copying,即禁止复制
很多时候允许RAII对象被复制是不合理的。
(2)对底层资源施行引用计数法
在此情况下保有资源,直到最后一个使用者被销毁。tr1::shared_ptr即是如此。
(3)复制底部资源
在此情况下复制资源管理对象,同时复制其所管理的资源,即进行“深度复制”。
(4)转移底部资源的拥有权
在此情况下永远只有一个RAII对象指向一个未加工资源。