Sprytny wskaźnik, inteligentny wskaźnik (ang. smart pointer) to abstrakcyjny typ danych symulujący wskaźnik, dodając przy tym nowe funkcje takie jak odśmiecanie albo sprawdzanie zakresów odwołań (bounds checking).

Niektóre sprytne wskaźniki wykonują zliczanie referencji (shared_ptr), inne przekazują kontrolę nad obiektem tylko jednemu wskaźnikowi (auto_ptr). W przypadku języków z automatycznym odśmiecaniem (np. Java, C#) użycie sprytnych wskaźników jest niepotrzebne.

W języku C++ sprytne wskaźniki mogą zostać zaimplementowane jako wzorzec klasy, który dzięki przeciążeniu operatorów, udaje działanie zwykłego wskaźnika (operacje dereferencji, przypisania itp.), definiując dodatkowe algorytmy zarządzania pamięcią.

Zobacz też edytuj