Когда следует использовать указатель, ссылку, необработанный указатель и интеллектуальные указатели при определении срока службы объекта в игре?

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

0

Решение

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

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

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]