У меня вопрос о умных указателях в C++ 11. Я начал смотреть на C++ 11 (обычно в C#) и прочел кое-что о умных указателях. Теперь у меня есть вопрос, действительно ли умные указатели полностью заменяют «старый» стиль указателей, должен ли я всегда использовать их?C++ 11 Использование смарт-указателя
unique_ptr
, похоже, решает все проблемы с управлением памятью на C++, или я ошибаюсь?
Например:
std::unique_ptr<GameManager> game (new GameManager());
game->Start();
Кажется, гораздо умнее:
auto *game2 = new GameManager();
game2->Start();
delete game2;
Спасибо, я немного запутался!
Вы не должны использовать их, если нет вопросов о собственности. Например, если что-то владеет игровым менеджером, а что-то еще хочет его использовать (например, полиморфно) и не имеет права голоса или прав на его жизнь, то вы можете рассмотреть передачу ему необработанного указателя. – juanchopanza
Спасибо, теперь более понятно – BendEg
«решить все проблемы» - нет. Однако это решает многое. –