【发布时间】:2015-06-08 14:36:45
【问题描述】:
据我所知,最好使用智能指针,而不是通过原始指针管理动态分配对象的生命周期,
例如:MyObject* obj = new Object();
但在某些框架/库中,它们总是返回/使用原始指针而不是智能指针(也许它们有自己的 GC 对象?我不知道)。
它也更容易使用
MyObject* obj = GetAObject(); // return raw owning pointer
比
SharedPointer<MyObject> obj = GetAObject(); // return smart pointer
是否应该始终使用智能指针而不是手动 new/delete(如上面的示例),或者在任何情况下应该使用原始资源拥有指针?
【问题讨论】:
-
意见问题与 Stack Overflow 无关。
-
new不是智能指针的相反选项。裸指针与智能指针相反。 -
听起来您听说最好使用智能指针,并在不理解的情况下将这个建议铭记在心。请不要那样做。回到你看到的地方,阅读并理解推理。这样做后你就不会再有这个问题了。
-
虽然这个问题可能可以改写为更客观,但它可能会在此过程中重复。
-
@R.MartinhoFernandes:这可能是 Puppy 对某人之前的 SO 问题的愚蠢概括之一。