Smart pointer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
AlessioBot (discussione | contributi)
m WPCleaner v1.30b - Fixed using Wikipedia:Check Wikipedia - Categoria con uno spazio
m Note: Aggiunto un a capo per separare il tag "references/" dal template "Portale"
 
(13 versioni intermedie di 11 utenti non mostrate)
Riga 1:
Un '''puntatore intelligente''' o '''''smart pointer''''' è un [[tipo di dato astratto]] che simula il comportamento di un [[Puntatore (programmazione)|puntatore]] e in più fornisce controlli aggiuntivi per la [[gestione della memoria]] automatica e il [[controllo dei limiti]]. Ciò ha lo scopo di ridurre gli errori dovuti a un uso errato dei puntatori, ma al tempo stesso mantenere la loro efficienza. I puntatori intelligenti sono diventati popolari con la loro introduzione in [[C++]] in risposta alle critiche riguardanti la mancanza di un sistema di ''[[garbage collection]]''.<ref>{{Cita web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1994/N0555.pdf|titolo=Exception Safe Smart Pointers|autore=Gregory Colvin|data=1994}}</ref> Dall'edizione [[C++11]], i puntatori intelligenti sono <code>std::unique_pointer</code>, <code>std::shared_pointer</code> e <code>std::weak_pointer</code>.
{{W|informatica|luglio 2013}}
 
Gli '''smart pointers''' (letteralmente "puntatori intelligenti") sono oggetti del [[C++]] che facilitano la vita a chi deve usare i puntatori. Lo scopo principale di uno smart pointer è quello di provvedere una cancellazione automatica della memoria. Non facendo parte delle caratteristiche del C++ gli Smart Pointers vengono forniti attraverso librerie (tra cui quella standard), e pertanto non possono sostituirsi completamente alla gestione della memoria così come avviene per i linguaggi con Garbage Collection. Sono elencati qui di seguito i principali tipi di Smart Pointers ad oggi diffusi e ampiamenti approvati dalla comunità.
 
==Smart Pointers del C++03==
* std::auto_ptr (deprecato nel nuovo standard C++11)
 
==Smart pointers della libreria Boost==
* boost::shared_ptr
* boost::scoped_ptr
* boost::intrusive_ptr
* boost::weak_ptr
 
==Smart Pointers del C++11==
* std::shared_ptr
* std::weak_ptr
* std::unique_ptr
 
== Collegamenti esterni ==
* [http://gameprog.it/articles/93/c-11-smart-pointers: C++11: Smart pointers (shared_ptr e weak_ptr]
* [http://gameprog.it/articles/68/c-11-ne-rester-solo-uno C++11: Ne resterà solo uno (uinque_ptr)]
 
== Note ==
<references />
{{Portale|informatica}}
 
[[Categoria:Linguaggi di programmazioneC++]]