【发布时间】:2013-08-21 17:09:05
【问题描述】:
我第一次在 C++ 中使用智能指针。
我有一些关于std::shared_ptr的问题:
-
通过引用设置指针:
MyToy mytoy_1, mytoy_2; set_mytoy(mytoy_1, some_data); set_mytoy(mytoy_2, some_data); shared_ptr<MyToy> ptr_mytoy(&mytoy_1); -
重置和新分配:
ptr_mytoy.reset(&mytoy_2); -
不赋值就重置:
ptr_mytoy.reset(); -
设置
NULL(?):ptr_mytoy(nullptr);
这些例子对吗?
如何检查智能指针是否为“空”(例如,在.reset() 之后)或是否为NULL?
【问题讨论】:
-
请仔细阅读your previous question的选定答案。
-
@juanchopanza 在我之前的问题中,我没有问任何关于 null/reset 检查的问题。
-
不,但你仍然在误用
shared_ptr。
标签: c++ c++11 std shared-ptr smart-pointers