我有一个用 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
拥有指针。试图解决这个事实只会让你的生活更加艰难。
但事实上你说 Container
比 B
长。你为什么不强制执行它,而不是过度防御可能会以其他几种方式破坏你的程序的错误?
关于c++ - 如何管理不同类中原始指针和 unique_ptr 的混合使用? (异常(exception)?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39301515/