Hur fungerar radering i C++?
Hur fungerar radering i C++?

Video: Hur fungerar radering i C++?

Video: Hur fungerar radering i C++?
Video: delete operator in C++ - 48 2024, December
Anonim

När ta bort är används för att deallokera minne för en C++ klassobjekt, objektets destruktör är kallas före objektets minne är avallokerad (om objektet har en destruktor). Om operanden till radera operatör är ett modifierbart l-värde, dess värde är odefinierat efter objektet är raderad.

Frågan är också, vad är skillnaden mellan radera och ta bort i C++?

Båda används för samma ändamål, men de har fortfarande några skillnader , den skillnader är: radera är en operatör medan free() är en biblioteksfunktion. radera frigör det tilldelade minnet och destruktören för samtal. Men free() de-allocatememory men anropar inte destructor.

Man kan också fråga sig, hur fungerar C++ new? När ny används för att allokera minne för en C++ klassobjekt, anropas objektets konstruktor efter att minnet har allokerats. När du tilldelar en array med hjälp av ny operatör kan den första dimensionen vara noll - den ny operatören returnerar en unik pekare.

Man kan också fråga sig, vad är nyttan med nya och ta bort operatorer i C++?

C++ stöder dynamisk allokering och deallokering av objekt med hjälp av nya och ta bort operatörer . Dessa operatörer allokera minne för objekt från en pool som kallas thefree store. De ny operatör anropar specialfunktionen operatör ny , och den ta bort operatör anropar specialfunktionen operatör radera.

Behöver jag ta bort pekare C++?

1 Svar. Det gör du inte behöver radera det, och dessutom borde du inte radera den. Om jorden är ett automatiskt objekt kommer det att frigöras automatiskt. Så genom att manuellt Tar bort a pekare till det går du in i odefinierat beteende.