【发布时间】:2013-01-01 10:10:05
【问题描述】:
我实际上正在制作一个简单的 C++ SFML 游戏,我想学习更多关于 C++ 编程的知识。
现在我正在使用 shared_ptr 来管理资源。在创建新资源时,我对 shared_ptrs 有一些疑问,例如:
shared_ptr< Resource > resource( new Resource( World::LEVEL ) );
根据 boost shared_ptr
【问题讨论】:
-
我真的不认为你需要担心是 shared_ptr 还是 new-operator 抛出了 bad_alloc。如果您担心这一点,不妨将所有“新”语句放在 try-catch-blocks 中。
-
此外,您应该使用
std::make_shared,它可以优化shared_ptr内部结构以及消除bad_alloc来自何处的区别。