Come usare Puntatori Intelligente

April 28

Come usare Puntatori Intelligente


Un puntatore intelligente è simile a un puntatore normale desktop, che è un tipo di dati linguaggio di programmazione, ma con funzioni avanzate. Il dispositivo può semplificare lo sviluppo C ++, in quanto si propone di limitare il numero di errori associati a un uso improprio puntatori regolari. I puntatori monitorare oggetti che hanno messo in evidenza per la gestione della memoria. Il garbage collector raccoglie i dati da oggetti che non sono più in uso dal programma. Questa funzione sostituisce 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 aiuta anche a limiti di controllo, che controlla se una variabile è all'interno di un limite prima che venga utilizzato.

istruzione

1 Assicurarsi che non si dispone di un conteggio di riferimento non valido, il che eliminare un oggetto troppo presto o mai più. Assegnare un esempio di recente sviluppato per un puntatore intelligente e tenerlo lì. Ora, il puntatore intelligente possiede l'oggetto. Non è possibile eliminare manualmente o sostituirla. Questo garantirà un oggetto a cui fa riferimento un puntatore intelligente non è erroneamente eliminato o dato un conteggio di riferimento non valido.

2 Utilizzare un puntatore intelligente per aumentare il vostro codice. Scrivi ..._ PTR <T> il mio Ptr (nuovo T) se si crea il proprio puntatore intelligente. Utilizzare ptr.get () per recuperare il puntatore crudo. Non assegnare un T * per 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 dei riferimenti non vengono mai cancellati. È inoltre dovrebbe mai costruire un shared_ptr temporanea per passare alle funzioni. Creare una variabile denominata (locale), invece. In questo modo, si aumenterà la sicurezza del codice.

3 Assegnare il auto_ptr puntatore intelligente 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 MUCCA in questo campo può salvare la memoria del computer. Un contenitore STL può essere assegnato ai puntatori immondizia raccolti per memorizzare gli oggetti provenienti da varie classi in un unico contenitore. Comprendere le caratteristiche della raccolta dei rifiuti specifico utilizzato. conteggio di riferimento / collega può fuoriuscire quando si applica un riferimento circolare. Ad esempio, quando un oggetto appuntito ha un puntatore contato, punterà ad un oggetto che ha il puntatore conteggiato originale. Questa tecnica, se usato destra, è semplice e deterministico.