条款13:以对象管理资源
在一个函数中,获取若干资源后,会对这些资源进行若干操作,正确的设计要求我们在函数返回时将资源释放。但是,如果在我们释放资源之前,因为异常或者过早返回导致临时资源没有被释放,就会造成资源泄漏,即使非常小心的添加delete语句,仍然无法避免某个异常发生在delete之前而造成资源泄漏。更可靠的方式是把资源放到对象中,而局部对象会在离开控制区后,C++会自动回收这个临时对象,并自动调用析构函数,这个机制可以保证资源被正确的释放,而这里所说的对象也就是我们常常使用的智能指针: auto_ptr和shared_ptr等。这个条款基于如下两个想法:在一个函数中,获取若干资源后,会对这些资源进行若干操作,正确的设