gpt4 book ai didi

c++ - 如何管理不同类中原始指针和 unique_ptr 的混合使用? (异常(exception)?)

转载 作者:太空狗 更新时间:2023-10-29 23:39:12 24 4
gpt4 key购买 nike

我有一个用 unique_ptr 存储对象的容器,为简单起见,假设我只有一个对象:

class Container { std::unique_ptr<A> ptrA; }

我还有使用该对象的类。这些类在构造时采用指向这些对象的原始指针:

class B { A* a;
B(*A param) : a(param) }

它们是用 : B b = B(Container.ptrA.get() );

创建的

Container 类应该比 B 类 长寿。但是,我希望我的整个程序不会崩溃,以防我的容器类中出现问题或错误,并且 unique_ptr 超出范围并被删除。

我的问题是关于管理这 1% 案例的设计,以便我的程序可以尝试重新加载数据并避免突然崩溃,您会使用异常吗?如果是这样,你会在哪里做 try/catch ?

谢谢!

最佳答案

当您使用 std::unique_ptr 时,您正在做出设计决策:Container 拥有指针。试图解决这个事实只会让你的生活更加艰难。

但事实上你说 ContainerB 长。你为什么不强制执行它,而不是过度防御可能会以其他几种方式破坏你的程序的错误?

关于c++ - 如何管理不同类中原始指针和 unique_ptr 的混合使用? (异常(exception)?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39301515/

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