0

我目前正在尝试了解何时使用实际对象、原始指针和智能指针。在以下示例中,哪个最好使用或每个步骤?假设我创建并加载了一个图像文件,我想为许多对象重用它,但我不想每次创建对象时都使用图像加载库从路径中加载它。因此加载了单个图像并且多个对象可以引用它。在程序结束之前,图像也应该在没有任何引用的情况下可用。对象本身要么永远存在,要么如果它的粒子对象例如在其生命为 0 后被删除,而不删除图像。谢谢。

4

1 回答 1

2

Bjarne Stroustrup 建议仅将智能指针用作最后的手段。他的建议(从最好到最坏)是:

  • 按值存储对象。
  • 按值将许多对象存储在容器中。
  • 如果没有其他方法,请使用智能指针。

普通指针仅用于引用不属于自己的对象(所有者销毁对象)。这同样适用于引用,尽管对const和右值引用的引用可以延长临时对象的生命周期。

请参阅Bjarne Stroustrup - C++ 的本质:在 0:37:40 使用 C++84、C++98、C++11 和 C++14中的示例。

于 2018-12-11T10:29:40.003 回答