今天我被问到C中的智能指针,我找不到任何关于它的有用信息..
请有人告诉我:
什么是智能指针?
你什么时候需要它?
你有任何智能指针实际有用的例子吗?
谢谢!
解决方法
智能指针主要帮助您:
>抛出异常时避免泄漏.抛出异常时,您不希望泄漏try块中先前分配的任何对象.通过将它们包装在智能指针中,当退出try块时它们将被销毁,这些对象将被正确销毁.
>通过引用计数所有者到对象来管理生命周期(即,最后一个销毁其引用特定对象的智能指针实际上释放对象).这在松散耦合的场景中尤其有用,在这种场景中,不清楚对象应该在何时被销毁,因为对象的用户彼此不了解.
智能指针有用的一个很好的例子:
A vector of pointers to objects. By making it a vector of shared pointers,for example,the objects will automatically be deallocated when the vector is destroyed and/or objects are removed. This automates object lifetime management and helps the user of the container avoid memory leaks.