Καθορίστε πότε να χρησιμοποιούν μια εικονική καταστροφέα . Μια διάσπασης για μια κατηγορία πρέπει να είναι εικονική , όταν ένα αντικείμενο μιας παραγόμενης κλάσης θα καταστραφεί από την επίκληση της βασικής κλάσης καταστροφέα . Ο καταστροφέας πρέπει να είναι εικονική , όταν διαγράφετε ένα δείκτη σε ένα αντικείμενο και είναι δυνατό να οδηγεί σε μια παραγόμενη κλάση . 2
Μάθετε μια σημαντική διαφορά ανάμεσα σε ένα καταστροφέα και άλλων μεθόδων μέλος . Σε αμφότερες τις περιπτώσεις , η μέθοδος της παράγωγης κλάσης γίνεται επίκληση εάν εφαρμοστεί . Ωστόσο , η βασική κλάση destructor στη συνέχεια καλείται , ενώ αυτό δεν συμβαίνει με άλλες μεθόδους
εικόνων 3
Εξετάστε το ακόλουθο παράδειγμα μιας εικονικής destructor : .
# Include τάξη Base_class {δημόσια : Base_class ( ) { cout //εικονική λέξη-κλειδί είναι απαραίτητη herevirtual ~ Base_class ( ) { cout } ? τάξη Derived_class : δημόσια Base_class {δημόσια : Derived_class ( ) { cout ~ Derived_class ( ) { cout } ? void main ( ) { Base_class * p = νέα Derived_class ( ) ? delete p ? }
Η 4
Παρατηρήστε τη χρήση της εικονικής λέξη-κλειδί στο παράδειγμα στο Βήμα 3 . Αν ο destructor της κλάσης βάσης δεν είχαν δηλωθεί ως εικονικές , ο destructor της παραγόμενης κλάσης δεν θα καλεστεί .
5
Εφαρμογή τουλάχιστον ένα άδειο σώμα για μια εικονική καταστροφέα διότι μια καθαρά εικονική λειτουργία δεν μπορεί να να δηλώνονται .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα