Qual è la differenza principale tra delete [] e delete?
Qual è la differenza principale tra delete [] e delete?

Video: Qual è la differenza principale tra delete [] e delete?

Video: Qual è la differenza principale tra delete [] e delete?
Video: Неубиваемый двигатель? Разбираем дизель BMW 2.0d (M47TUD20) и обсуждаем все его проблемы. 2024, Maggio
Anonim

Il motivo per cui ci sono separati Elimina e Elimina operatori è che Elimina chiama onedestructor mentre Elimina deve cercare le dimensioni dell'array e chiamare così tanti distruttori. Naturalmente, l'utilizzo dell'uno dove è richiesto l'altro può causare problemi.

Inoltre, qual è la differenza tra free() e delete?

Differenze tra cancellare operatore e gratuito() funzione Elimina è un operatore mentre gratuito() è la funzione di libreria. elimina gratis la memoria allocata e il distruttore di chiamate. Ma gratuito() dealloca la memoria ma non chiama distruttore. Elimina è più veloce di gratuito() perché un operatore è sempre più veloce di una funzione.

Inoltre, cosa fa delete in C++? Elimina () in C ++ Elimina è un operatore che è usato per distruggere oggetti array e non array (puntatore) che sono creato da una nuova espressione. Che significa Elimina operatordealloca la memoria dall'heap. Puntatore all'oggetto è nondistrutto, valore o blocco di memoria puntato da un puntatore è distrutto.

Quindi, qual è la differenza tra rimuovere ed eliminare?

Elimina e rimuovere sono definiti in modo abbastanza simile, ma il principale differenza tra loro è quello Elimina si intende cancellare (cioè reso inesistente o non recuperabile), mentre rimuovere connota togliere e mettere da parte (ma tenuto in vita).

In che modo il distruttore è diverso dall'operatore di eliminazione?

Il primo distruttore , chiamato oggetto completo distruttore , esegue la distruzione senza chiamare Elimina () sull'oggetto. Il secondo distruttore , chiamato il cancellando il distruttore , chiamate Elimina () dopo aver distrutto l'oggetto. Se un oggetto viene distrutto ma non cancellato dal mucchio, chiamando operatore cancella è sbagliato.

Consigliato: