C++中用对象管理资源时需要注意的问题
C++中用对象管理资源的主要目的是为了利用C++的“自动调用析构函数”的机制来避免内存泄漏。
上一节中提到可以用智能指针或者计数型智能指针作为对象来管理资源,这两个类指针对象包含了一个get成员函数用于返回其内部的原始指向资源的指针,这是由对象到原始指针的显式转换,此外,它们还可以通过指针取值操作符(.和->)来实现隐式转换。
通常,用对象管理资源时,都应在对象中包含获取原始指针的方法,这种方法可以是显式或是隐式的,显示的转换比较安全,隐式有可能会与预期的结果相遍悖,但用户用起来更方便,使用时需要根据情况具体处理。
以上整理自Effective C++第三版case 15.