En virtuell metode har ingen direkte gjennomføring og dens atferd bestemmes av metode med samme signatur som er på det laveste arv nivået på instansiert objektet . En destructor ringes automatisk når objektet er ødelagt . En virtuell destructor i C + + brukes primært for å hindre ressurs lekkasjer ved å utføre en opprydding av objektet. Følgende trinn forklarer hvordan du bruker virtuelle destructors i C + + . Instruksjoner
en
Bestem når du skal bruke en virtuell destructor . En ødelegger for en klasse skal være virtuelle når et objekt av en avledet klasse vil bli ødelagt ved å påberope base klassen destructor . Destructor må være virtuelle når du sletter en peker til et objekt og det er mulig at den peker til en avledet klasse .
2
Lær en viktig forskjell mellom en destructor og andre medlemsland metoder. I begge tilfeller er metoden for den avledede klassen gjeldende dersom det er implementert . Imidlertid er base klassen destructor senere kalt mens dette ikke skjer med andre metoder
3
vurdere følgende eksempel på en virtuell destructor : .
# Include klasse Base_class {public : Base_class ( ) {domstol //virtuell søkeord er nødvendig herevirtual ~ Base_class ( ) {domstol }; klasse Derived_class : public Base_class {public : Derived_class ( ) {domstol ~ Derived_class ( ) {domstol }; void main ( ) { Base_class * p = new Derived_class (); slett p; }
4
Observer bruk av den virtuelle søkeordet i eksempelet i trinn tre . Hvis destructor av basen klassen ikke ble erklært som virtuelle, ville destructor av avledet klasse ikke får ringt .
5
Gjennomføre minst en tom kropp for en virtuell destructor siden en ren virtuell funksjon kan ikke bli erklært .