26. C++: Inteligentne Wskaźniki
C++Bezpieczne użycie std::unique_ptr oraz std::shared_ptr.
#include <memory>
class Node {
public:
int value;
std::shared_ptr<Node> next;
Node(int val) : value(val) {}
};
void createList() {
auto head = std::make_shared<Node>(10);
head->next = std::make_shared<Node>(20);
}
Kiedy używać
Stosuj zamiast surowych wskaźników (raw pointers) wszędzie, gdzie zarządzasz pamięcią dynamiczną — eliminuje większość wycieków pamięci.
Typowe pułapki
Cykliczne referencje między obiektami shared_ptr (np. rodzic-dziecko) powodują wyciek pamięci — w takich przypadkach potrzebny jest weak_ptr.