En virtuell metod har ingen direkt genomförande och dess beteende bestäms av den metod med samma signatur som är på den lägsta arv nivå instansieras objektet . En destructor kallas automatiskt när objektet förstörs . En virtuell destructor i C + + används främst för att förhindra resurs läckor genom att utföra en sanering av objektet. Följande steg förklarar hur man använder virtuella destruktorer i C + + . Instruktioner
1
Bestäm när du ska använda en virtuell destructor . En destructor för en klass ska vara virtuella när ett föremål för en härledd klass kommer att förstöras genom att åberopa destructor basklass . Destructor måste vara virtuella när du tar bort en pekare till ett objekt och det är möjligt att den pekar på en härledd klass .
2
Lär en viktig skillnad mellan en destructor och andra metoder medlemsländer . I båda fallen är metoden enligt härledd klass åberopas om den genomförs. Dock är basklassen destructor senare kallades Detta händer inte med andra metoder
3
Betrakta följande exempel på en virtuell destructor : .
# Include class Base_class {public : Base_class ( ) { cout //virtual sökord behövs herevirtual ~ Base_class ( ) { cout } , klass Derived_class : allmän Base_class {public : Derived_class ( ) { cout ~ Derived_class ( ) { cout }; void main ( ) { Base_class * p = new Derived_class (); delete p; }
4
Observera användningen av den virtuella nyckelordet i exemplet i steg 3 . Om destructor av basklassen inte deklarerades som virtuella , skulle destructor den härledda klassen inte får kallas .
5
Genomföra minst en tom kropp för en virtuell destructor sedan en ren virtuell funktion kan inte deklareras .