今天有人问我关于C++中的智能指针,我找不到任何关于它的有用信息。
有人能告诉我:什么是智能指针吗?您什么时间需要?你有没有什么例子说明智能指针是很有用的?
谢谢!
发布于 2011-02-15 22:59:57
首先,智能指针可帮助您:
智能指针有用的一个很好的例子:
指向对象的指针向量。例如,通过使其成为共享指针的向量,当该向量被销毁和/或对象被移除时,对象将被自动释放。这使对象生存期管理自动化,并帮助容器的用户避免内存泄漏。
发布于 2011-02-15 23:00:52
摘自Boost智能指针(smart_ptr)库:
智能指针是存储指向动态分配(堆)对象的指针的对象。它们的行为很像内置的C++指针,只是它们会在适当的时候自动删除指向的对象。智能指针在遇到异常时特别有用,因为它们可以确保正确地销毁动态分配的对象。它们还可用于跟踪由多个所有者共享的动态分配的对象。
从概念上讲,智能指针被视为拥有指向的对象,因此负责在不再需要该对象时删除该对象。
发布于 2011-02-15 23:00:52
智能指针通过跟踪指向内存的引用数来处理自己的内存管理。一旦有0个引用,它就会为你删除内存。使内存管理变得更容易。
https://stackoverflow.com/questions/5005186
复制相似问题