Bre*_*hns 1 c++ shared-ptr c++11
我有些惊讶地发现,std::shared_ptr当它的指向对象以某种方式被删除时,它不提供保护(例如,抛出异常).我想这是出于性能原因; 假设shared_ptr正在完成其工作的对象shared_ptr应该从未删除过的点,因此浪费周期不断检查是愚蠢的.
我知道我可以明确检查a shared_ptr是否有效,但是如果shared_ptr"做它的工作"来维持对象的生命周期,那么每次触摸时都要明确检查是否有点过分shared_ptr.
所以我的问题是,鉴于此,我应该多么谨慎?关于是否,经常或何时应该检查shared_ptr?是否有"经验法则" ?
到目前为止,我最好的结论是模仿Java:每当你提交一个你没有创建的Java对象的引用时,你应该检查它null.这是一个很好的政策shared_ptr吗?
就像任何其他指针一样,如果您有任何理由怀疑它可能包装空指针,请在使用它之前检查它.
shared_ptr确实有助于管理它指向的对象的生命周期,但这是一个完全独立的任务,从决定它是否指向一个对象.
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |