gpt4 book ai didi

c++ - 从原始指针创建 weak_ptr<>

转载 作者:可可西里 更新时间:2023-11-01 15:36:53 27 4
gpt4 key购买 nike

我想将原始指针成员包装到一些智能指针,以防止在开发类中删除。指针下对象的所有者在类之外。所以,看起来像 boost::shared_ptrstd::auto_ptr 不适合。以下是简化的示例:

class Foo {
boost::weak_ptr<Bar> m_bar;
public:
void setBar(const Bar *bar) { // bar created on heap
m_bar = bar; // naturally compilation error
}
};

当然会导致编译错误。从原始指针(如果存在)初始化 weak_ptr 的正确方法是什么?

最佳答案

你不能那样做,你只能从 shared_ptr 或另一个 weak_ptr 中创建一个 weak_ptr。所以想法是指针的所有者持有 shared_ptr 而不是原始指针,一切都应该没问题。

关于c++ - 从原始指针创建 weak_ptr<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19140172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com