Mam pytanie dotyczące inteligentnych wskaźników w języku C++ 11. Zacząłem mieć spojrzenie na C++ 11 (zwykle program w języku C#) i przeczytać coś na temat inteligentnych wskaźników. Teraz mam pytanie, czy inteligentne wskaźniki całkowicie zastępują "stary" styl wskaźników, czy zawsze powinienem z nich korzystać?C++ 11 Inteligentne użycie wskaźnika
Wydaje się, że unique_ptr
rozwiązuje wszystkie problemy związane z zarządzaniem pamięcią w C++, czy też się mylę?
Na przykład:
std::unique_ptr<GameManager> game (new GameManager());
game->Start();
Wydaje się być dużo bardziej inteligentne niż:
auto *game2 = new GameManager();
game2->Start();
delete game2;
Dziękuję, jestem trochę zdezorientowany!
Nie należy ich używać, gdy nie ma wątpliwości co do własności. Na przykład, jeśli coś jest właścicielem menedżera gier i coś innego chce z niego korzystać (na przykład polimorficznie) i nie ma nic do powiedzenia na temat jego własności lub okresu istnienia, można rozważyć przekazanie do niego surowego wskaźnika. – juanchopanza
Dziękuję, teraz jest bardziej przejrzyste – BendEg
"rozwiązać wszystkie problemy" - nie. Jednak rozwiązuje to wiele. –