Un puntatore intelligente è simile a un puntatore normale desktop , che è un tipo di dato linguaggio di programmazione , ma con funzioni avanzate . Il dispositivo può semplificare C + + sviluppo , come essa intende limitare il numero di insetti associati abusare puntatori regolare. I puntatori monitorare oggetti che hanno indicato per la gestione della memoria . Il garbage collector raccoglie i dati da oggetti che non sono più in uso dal programma. Questa funzione sostituisce la gestione manuale della memoria , che richiede all'operatore di selezionare ogni oggetto che deve essere deallocato e restituito alla memoria del computer . Il puntatore intelligente assiste anche nella verifica dei limiti , che controlla se una variabile è all'interno di un limite prima di essere utilizzato . Istruzioni
1
assicurarsi di non avere un conteggio di riferimento valido, che eliminare un oggetto troppo presto o mai . Assegnare un esempio sviluppato di recente per un puntatore intelligente e tenerlo lì . Ora , il puntatore intelligente possiede l'oggetto . Non è possibile cancellare manualmente o sostituirlo. Questo garantirà un oggetto a cui fa riferimento un puntatore intelligente non è erroneamente eliminato o dato un conteggio di riferimento non valido .
2
Usare un puntatore intelligente per aumentare il vostro codice . Scrivi ... _ptr mio Ptr ( nuovo T) se si crea il proprio puntatore intelligente . Utilizzare ptr.get ( ) per recuperare il puntatore crudo. Non assegnare un T * di un puntatore intelligente . Non è inoltre possibile scrivere ptr = NULL . Per questo, utilizzare ptr.reset ( ) . Due oggetti che fanno riferimento l'un l'altro tramite un puntatore conteggio di riferimento non vengono mai cancellati . È inoltre dovrebbe mai costruire un shared_ptr temporanea di passare alle funzioni . Creare una variabile di nome ( locale ), invece. In questo modo, si aumenterà la sicurezza del codice.
3 Assegna il puntatore intelligente auto_ptr standard per semplicità . Spesso è la scelta migliore per le variabili locali . Altre opzioni includono il membro della classe , anche se è possibile assegnare auto_ptr come un membro della classe . Un puntatore COW in questo campo può salvare la memoria del computer . Un contenitore STL può essere assegnato ai puntatori a garbage collection per memorizzare gli oggetti da varie classi in un unico contenitore . Comprendere le caratteristiche della garbage collection specifico utilizzato . Riferimento conteggio /linking può fuoriuscire quando si applica un riferimento circolare . Ad esempio, quando un oggetto appuntito ha un puntatore contato , punterà ad un oggetto che ha contato il puntatore originale . Questa tecnica , se usato bene, è semplice e deterministico .