Aggiunta di oggetti permanenti a un vettore

0

Sono relativamente nuovo al C ++ (proveniente da Java) e ho un piccolo problema riguardante la durata degli oggetti. La mia situazione è la seguente: sto avendo una classe A in cui sto cercando di aggiungere elementi a un vettore in classe B. Questo vettore deve contenere oggetti (non puntatori) della classe C. Tuttavia, dal momento che gli oggetti vengono creati in classe As, è necessario cancellarli dopo la fine di questa funzione. Quindi quando provo ad accedere a questi oggetti mi danno risultati strani. Attualmente sto passando gli oggetti creati come una chiamata per riferimento (usando riferimenti invece che puntatori). La mia domanda è: cosa posso fare / utilizzare per avere gli elementi dei vettori non eliminati ma salvati per un uso successivo?

    
posta user3190009 28.02.2015 - 12:36
fonte

1 risposta

0

Devi possedere un puntatore intelligente per possederli. Quale scegli e come gestisci la loro vita dipende dalla tua applicazione. Il più comune è unique_ptr , ma c'è anche shared_ptr e un altro paio se hai esigenze più specialistiche.

Non utilizzare mai new e delete per gestirne la durata. Utilizza new solo se devi implementare make_unique , altrimenti non usarlo mai. Non utilizzare mai new[] , delete , delete[] o qualsiasi strategia che li richiede.

    
risposta data 28.02.2015 - 13:00
fonte

Leggi altre domande sui tag