En virtuel metode har ingen direkte gennemførelse og dens adfærd er bestemt ved fremgangsmåden med den samme signatur, er på den laveste arv niveau instantieret objekt . En destructor kaldes automatisk , når objektet er ødelagt . En virtuel destructor i C + + bruges primært til at forhindre ressource lækager ved at udføre en oprydning af objektet . Følgende trin forklarer, hvordan man bruger virtuelle destruktionsfunktioner i C + + . Instruktioner
1
Bestem hvornår du skal bruge en virtuel destructor . En destructor for en klasse skal være virtuelt , når et objekt af en afledt klasse vil blive ødelagt ved at påberåbe sig basisklassen destructor . Det destructor skal være virtuelt , når du sletter en pegepind til et objekt , og det er muligt, at den peger på en afledt klasse.
2
Lær en vigtig forskel mellem en destructor og de øvrige medlemslande metoder. I begge tilfælde er fremgangsmåden den afledte klasse påberåbes, hvis den gennemføres . Imidlertid er basisklassen destructor efterfølgende kaldt mens dette ikke sker med andre metoder
3
Overvej følgende eksempel på en virtuel destructor : .
# Include class Base_class { public: Base_class () { cout //virtuelle søgeord er nødvendig herevirtual ~ Base_class () { cout }; klasse Derived_class : public Base_class {public : Derived_class () { cout ~ Derived_class () { cout }; void main () { Base_class * p = new Derived_class (); delete p ;}
4
Observer brugen af den virtuelle søgeord i eksemplet i trin 3 . Hvis destructor af basen klasse ikke blev angivet som virtuelle, ville destructor den afledte klasse ikke bliver kaldt.
5.
Implement mindst en tom organ for en virtuel destructor , da en ren virtuel funktion kan ikke erklæres .