相关疑难解决方法(0)

什么时候应该使用原始指针而不是智能指针?

在阅读完这个答案后,看起来最好尽可能使用智能指针,并将"普通"/原始指针的使用量降至最低.

真的吗?

c++ boost pointers smart-pointers

56
推荐指数
3
解决办法
3万
查看次数

用于资源管理的C++ shared_ptr与unique_ptr

我一直在思索使用unique_ptrVS shared_ptrVS own_solution.我已经贴现后,我几乎肯定会弄错了,但我有一个问题,都unique_ptrshared_ptr中,无论是捕捉恰恰就是我想要的.我想创建一个显式拥有资源的资源管理器,但是我希望资源管理器也能分发对资源的引用.

如果我unique_ptr在资源管理器中使用并分发原始指针,那么他们可能会逃到其他地方(尽管这会违反我认为的类"合同").如果我使用shared_ptr和分发weak_ptr,那么没有什么能阻止调用者将其转换weak_ptr为a shared_ptr并存储它,从而可能创建一个循环或更糟的是,资源生存在资源管理器的生命周期之外.因此,我认为我正在寻找的是一种weak_ptr无法转化为无法实现的shared_ptr.

或者我只是想在代码中使用一些措辞强烈的评论强制执行合同?

感谢您对此可能有的任何想法.

c++ smart-pointers resourcemanager shared-ptr unique-ptr

6
推荐指数
2
解决办法
1705
查看次数