【发布时间】:2012-10-29 04:09:18
【问题描述】:
假设我有两个 shared_ptr 类型,例如
boost::shared_ptr<ObjA> sptrA;
boost::shared_ptr<ObjB> sptrB;
现在假设 sptrA->SomeMethod() 返回一个简单的 ObjB 类型(不是共享 ptr)。我可以以某种方式将该类型存储在 sptrB 中吗?这样我就可以做这样的事情,以便返回的类型实例自动转换为 boost_shared ptr
sptrB = sptrA->SomeMethod();
我只是出于好奇而问这个问题,这是否可能?
【问题讨论】:
-
SomeMethod究竟返回了什么?参考?复印件?指针?该引用/复制/指针是如何创建的? -
它返回一个值类型(A Copy)。
-
sptrB = boost::make_shared<ObjType>(sptrA->SomeMethod());是一个显而易见的答案,但这不是您想要的,对吧?太复杂了? -
@jogojapan 解决了我的问题。您可以将其发布为答案吗
标签: c++ boost shared-ptr