gpt4 book ai didi

c++ - boost::shared_ptr 引用计数确实解决了 tr1::shared_ptr 的原始指针

转载 作者:行者123 更新时间:2023-11-30 04:00:22 26 4
gpt4 key购买 nike

boost::shared_ptr 是否解决原始指针问题?

Base* p = new Base();

shared_ptr <Base> sp(p);
shared_ptr <Base> sq(p);

两个 shared_ptr 的引用计数都为 1,因此原始指针有问题。

boost::shared_ptr也有这个问题吗?

我听说 boost::shared_ptr 没有问题,那它是如何解决的呢?

最佳答案

不,boost::shared_ptr 没有解决这个问题。

问题在你的代码中,所以你需要自己解决。

最好的解决方案是确保在使用 new 创建对象时始终初始化智能指针:

shared_ptr <Base> sp(new Base());

现在没有原始指针,所以没问题。

更好的是:

shared_ptr<Base> sp = make_shared<Base>();

关于c++ - boost::shared_ptr 引用计数确实解决了 tr1::shared_ptr 的原始指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26357177/

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