【发布时间】:2017-01-27 01:15:21
【问题描述】:
有人能简单解释一下这不起作用的原因吗:
std::shared_pointer<Bar> getSharedPointer() {
return std::make_shared<Bar>();
}
...
auto foo = getSharedPointer().get();
显然使用原始指针foo 会导致段错误,因为getSharedPointer() 返回的共享指针的生命周期已经用完。不知何故,我希望它能够持续到其范围结束(就像它在里面的任何块一样)。
这是正确的吗?是否有与这种情况类似的例子?
【问题讨论】:
-
无法找到标准库或常见第三方中记录的
getSharedPointer。不知道会发生什么。建议添加更多信息。
标签: c++ pointers smart-pointers lifetime temporary