【发布时间】:2013-06-12 09:50:46
【问题描述】:
什么时候特别适合使用智能指针,如果不鼓励使用 C++ 中的指针,为什么还要使用智能指针?举个例子:
class Object { }
smart_pointer < Object > pInstance;
//wherein I can use the very simple way
Object instance;
【问题讨论】:
-
“不鼓励使用 C++ 中的指针”。那么,如果你不能使用指针,多态性将如何工作?需要指针,智能指针使指针的使用更安全/更容易/更好。
-
仅在必要时使用指针。当你这样做时,尝试使用智能指针而不是原始指针。
-
附加代码示例时,至少附加一个有效代码。
-
不幸的是,静态分配的对象虽然是首选和默认方式,但在所有情况下都不够用,例如难以定义对象生命周期的情况(不直接绑定到函数调用或另一个对象的生命周期),或者当需要动态多态性时。在这些情况下,动态内存分配通常是解决问题的最佳方法,并且通过智能指针变得更加简单和安全。
-
投反对票表示您的问题可能有问题;他们绝不是个人的,也不是为了让你气馁。您可能需要查看常见问题解答和关于页面,以确保您的问题没有问题。
标签: c++ smart-pointers