我目前正在尝试了解何时使用实际对象、原始指针和智能指针。在下面的示例中,哪个最好使用或每个步骤?可以说我创建并加载了一个图像文件,我想为许多对象重用它,但我不想在每次创建对象时使用图像加载库从路径加载它。因此加载单个图像并且多个对象可以引用它。在程序结束之前,图像也应该在没有任何引用的情况下可用。对象本身要么永远存在,要么如果它的粒子对象在其生命为 0 后被删除,而不同时删除图像。谢谢。
最佳答案
Bjarne Stroustrup 建议仅将智能指针用作最后的手段。他的建议(从最好到最差)是:
- 按值存储对象。
- 按值将许多对象存储在容器中。
- 如果没有别的办法,使用智能指针。
普通指针仅用于引用不属于自己的对象(所有者销毁该对象)。这同样适用于引用,尽管对 const
和 r 值引用的引用可以延长临时对象的生命周期。
参见 Bjarne Stroustrup - The Essence of C++: With Examples in C++84, C++98, C++11, and C++14在 0:37:40。
关于c++ - 在决定游戏中对象的生命时,何时使用指针、引用、原始指针和智能指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53721877/