Когда следует использовать указатель, ссылку, необработанный указатель и интеллектуальные указатели при определении срока службы объекта в игре? - PullRequest
0 голосов
/ 11 декабря 2018

Я сейчас пытаюсь понять, когда использовать реальные объекты, необработанные указатели и умные указатели.В следующем примере, что лучше всего использовать или каждый шаг?Допустим, я создаю и загружаю в файл изображения, который я хочу использовать для многих объектов, но я не хочу продолжать загружать его из пути, используя библиотеку загрузки изображений каждый раз, когда создается объект.Таким образом, загружается одно изображение и несколько объектов могут ссылаться на него.Изображение также должно быть доступно без каких-либо ссылок на него до конца программы.Сами объекты либо живут вечно, либо, если его объект частицы, например, удаляется после того, как его жизнь равна 0, без удаления изображения.Спасибо.

1 Ответ

0 голосов
/ 11 декабря 2018

Бьярне Страуструп рекомендует использовать умные указатели только в качестве крайней меры.Его рекомендации (от лучших к худшим):

  • Сохранение объекта по значению.
  • Сохранение множества объектов в контейнере по значению.
  • Если больше ничего не работает,используйте умные указатели.

Простые указатели предназначены только для ссылки на объекты, которыми он не владеет (владелец уничтожает объект).То же самое относится и к ссылкам, хотя ссылки на const и ссылки на r-значения могут продлить время жизни временного.

См. Бьярне Страуструп - Сущность C ++: с примерами на C ++ 84,C ++ 98, C ++ 11 и C ++ 14 в 0: 37: 40.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...