Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Τι είναι ένα Virtual Καταστροφείς σε C ​​

; Γιατί C + + χρησιμοποιεί ένα object-oriented προγραμματισμό , ή το μοντέλο OOP , ως μέρος του σχεδιασμού της , οι προγραμματιστές πρέπει να εξοικειωθούν με ορισμένες έννοιες OOP όπως οι κλάσεις και αντικείμενα . Όταν ένας προγραμματιστής επιθυμεί να αναπτύξει ένα αντικείμενο για χρήση σε κώδικα , αυτή πρέπει να σχεδιάσει τη λειτουργικότητα του αντικειμένου σε μια « τάξη». Μια κλάση ορίζει τα δεδομένα και τις λειτουργίες που ένα αντικείμενο μπορεί να χρησιμοποιήσει . Ένας συγκεκριμένος τύπος του αντικειμένου λειτουργία , την εικονική destructor , για τη χρήση του απαιτεί ότι ένας προγραμματιστής κατανοήσουν το ρόλο των καταστροφείς στις τάξεις , η έννοια της τάξης κληρονομιάς , και τη χρήση εικονικών λειτουργίες σε C ​​+ + προγραμματισμό . Κληρονομικότητα
Η

Μια δύναμη του OOP έγκειται στην έννοια της κληρονομικότητας . Όταν ένας προγραμματιστής επιθυμεί να επεκτείνει τη λειτουργική ενός αντικειμένου , ή εάν ένα αντικείμενο μετοχές μεγάλο μέρος της λειτουργικά ενός άλλου αντικειμένου με μικρές μόνο διαφορές , ο προγραμματιστής μπορεί να αντλήσει μια τάξη από την άλλη . Όταν μία κλάση προέρχεται από άλλη κατηγορία ( η κατηγορία «βάση» ) , έχει πρόσβαση στις μεταβλητές και συναρτήσεις που ορίζονται στην πρώτη κατηγορία . Σε αυτό το παράδειγμα, η κλάση «μπάλα» προέρχεται από την κατηγορία " σφαίρα " και επεκτείνει τη λειτουργικότητα του

τάξη Σφαίρα {

κοινό: .

Int getRadius ( ) {

επιστρέψει r ?

}

int r ?

}

τάξη Ball : δημόσια σφαίρα {

κοινό:

χρώμα string?

}
εικόνων Virtual λειτουργίες
Η

από μια παράγωγη κλάση έχει πρόσβαση σε όλες τις λειτουργίες της βασικής κλάσης , μπορεί να τα χρησιμοποιήσει όπως κάθε χρόνο όπως θα ενεργούσε ως βασική κλάση . Ωστόσο , η παραγόμενη κλάση μπορεί να τροποποιήσει , αντί μια λειτουργία στην τάξη βάση για να ταιριάζει στις ανάγκες του . Επιπλέον, μια κλάση βάσης θα μπορούσε να χρησιμεύσει ως πρότυπο για παραγόμενη κλάση . Σε αυτή την περίπτωση , η βασική κλάση θα αναφέρουμε τις λειτουργίες χωρίς να ορίζει τι κάνουν , αντί να την αφήνει σε παραγόμενες κλάσεις . Μια συνάρτηση σε μια βασική κλάση που δεν κάνει τίποτα , αντίθετα αφήνει μια παραγόμενη κλάση για την εφαρμογή , ονομάζεται «εικονική» λειτουργία.

Η καταστροφείς
Η

Integral ένστασης του σχεδιασμού είναι η εφαρμογή του « κατασκευαστή » και « καταστροφέα » λειτουργίες . Μια συνάρτηση constructor για μια κατηγορία καθορίζει πώς ένα αντικείμενο που δημιουργήθηκε από την τάξη θα προετοιμάσει πρώτα τον εαυτό του ( τι προεπιλεγμένες τιμές δεδομένων που θα περιέχει , για παράδειγμα) . Η καταστροφέα , αντίθετα , καθορίζει τι συμβαίνει όταν ένα αντικείμενο διαγράφεται από τη μνήμη ( πώς οι πληροφορίες σε αυτό διαγράφεται , για παράδειγμα) . Αυτό το παράδειγμα κώδικα δείχνει πώς μια κλάση ορίζει την πρώτη κατασκευή και καταστροφέα λειτουργίες

τάξη Σφαίρα {

Sphere ( ) ? . //Κατασκευαστή

~ Sphere ( ) ? //Καταστροφέας

}
εικόνων Virtual καταστροφείς
Η

Εξαιτίας του τρόπου τάξεις και καταστροφείς εργάζονται , όταν μια παραγόμενη κλάση διαγράφεται από τη μνήμη , τόσο η destructor της παραγόμενης τάξη και η destructor της κλάσης βάσης πρέπει να ονομάζεται . Για να επιτευχθεί αυτό , οι προγραμματιστές να δημιουργήσουν εικονικές καταστροφείς στις βασικές κλάσεις , ότι οι παραγόμενες κλάσεις μπορούν να καθορίσουν . Αυτό το παράδειγμα δείχνει μια βασική κλάση με μια εικονική διάσπασης και παραγόμενη κλάση με το δικό του καταστροφέα της

τάξη Σφαίρα {

Sphere ()? .

Εικονική ~ Sphere ( ) { } ? //η " εικονική " λέξη υποδηλώνει μια εικονική τάξη

}

τάξη Ball : δημόσια σφαίρα {

Ball ( ) ?

~ Ball ( ) : //διαγραφή " μπάλα " αντικείμενο θα καλέσει αυτό καταστροφέα και του καταστροφέα σφαίρα
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα