Κατά τη δημιουργία κλάσεων και των αντικειμένων για ένα πρόγραμμα σε C + + , ο προγραμματιστής συχνά ανακαλύπτει ότι διαφορετικές κατηγορίες θα επικαλύπτονται ή να μοιραστείτε παρόμοια λειτουργικότητα . Στη συνέχεια, έχει δύο επιλογές : να γράψει το λειτουργικό κώδικα για τις δύο κατηγορίες , ή να δημιουργήσετε μια τάξη "βάση" με όλα τα κοινά γνωρίσματα και τα χαρακτηριστικά των εν λόγω κατηγοριών . Στη συνέχεια , οι δύο κατηγορίες μπορεί να " εγγενής " αυτά τα χαρακτηριστικά , προσθέτοντας παράλληλα το δικό τους . Για παράδειγμα , αν ο προγραμματιστής γράφει " Συνεργάτης " και " Manager" τάξεις για μια επιχείρηση app , που θα μπορούσε να δημιουργήσει μια ενιαία κατηγορία « Υπάλληλος » που περιέχει την κοινή λειτουργικότητα και μεταξύ των συνεργατών και των διαχειριστών .
Η
Virtual Λειτουργίες
Η
τάξη Βάση για οποιαδήποτε άλλη κατηγορία μπορεί να περιέχει τους ορισμούς για το τι μπορούν να κάνουν μαθήματα . και τι πληροφορίες που περιέχουν. Έτσι , η τάξη των εργαζομένων από το παράδειγμα μπορεί να περιέχει μια συνάρτηση για τον υπολογισμό του μισθού που περιέχει ένα συγκεκριμένο τύπο. Οι κατηγορίες Διευθυντής και Αναπληρωτής εγγενή ότι η λειτουργία , και έτσι ο τύπος . Ωστόσο , οι διευθυντές και οι συνεργάτες ενδέχεται να απαιτούν διαφορετικό τύπο για τον υπολογισμό του μισθού . Στην περίπτωση αυτή, η κλάση βάσης θα περιέχει ένα «εικονικό» λειτουργία. Η βασική κλάση θα καθορίσει μια προεπιλεγμένη συμπεριφορά , αλλά οι κατηγορίες που το παιδί θα μπορούσε στη συνέχεια να δημιουργήσουν τα δικά τους τύπους και συναρτήσεις , αν χρειαστεί .
Η Abstract κλάσεις
Η
Παράλληλα με εικονικό λειτουργίες , υπάρχουν "καθαρά " εικονικές λειτουργίες . Καθαρά εικονική λειτουργίες δεν περιέχουν ορισμό της συνάρτησης . Αντίθετα , καθορίζουν απλώς το όνομα μιας συνάρτησης . Έτσι , για παράδειγμα , η συνάρτηση υπολογισμού του μισθού στη βάση κλάση Employee θα δηλωθεί ως εικονικές χωρίς ορισμό . Στη συνέχεια , οι τάξεις Διευθυντής και Αναπληρωτής θα καθορίσουν τις δικές τους συναρτήσεις για τον υπολογισμό του μισθού . Όταν η τάξη περιέχει ένα ή περισσότερα καθαρά εικονικές λειτουργίες , ονομάζεται μια αφηρημένη κατηγορία . Αυτό συμβαίνει επειδή τάξεις με καθαρά εικονική λειτουργίες δεν μπορούν να γίνουν αντικείμενα .
Εικόνων C + + Interfaces
Η
Από αφηρημένες κατηγορίες δεν μπορούν να γίνουν αντικείμενα , που ονομάζονται " διασυνδέσεις ". Interfaces είναι αφηρημένες κατηγορίες , που συχνά περιέχουν μόνο καθαρά εικονική λειτουργίες που να χρησιμεύσει ως πρότυπο για άλλες κοινές κατηγορίες . Έτσι, αν το παράδειγμα των εργαζομένων περιλαμβάνει μόνο καθαρά εικονική λειτουργίες , τότε ο προγραμματιστής σχεδιάζει τις κατηγορίες Διευθυντής και Αναπληρωτής να κληρονομήσουν από εργαζομένους ως διεπαφή , που σημαίνει ότι πρέπει να εφαρμόσουν τα καθαρά εικονική λειτουργίες της κατηγορίας εργαζομένων . Ενώ η C + + πρότυπο ISO δεν περιέχει ειδική " interface " λέξη-κλειδί , την εφαρμογή της Microsoft από C + + κάνει (Πηγή 3 ) . Εδώ είναι ένα παράδειγμα για να τονίσει αυτό relationship.class Υπάλληλος {
δημόσια : virtual int calcSalary ( ) = 0 ? //Καθαρό εικονική λειτουργία
private: int ID ? } ?
class Συνεργάτης: δημόσια Υπάλληλος {
κοινό: int calcSalary ( ) { //Συνεργάτης * πρέπει * να εφαρμόσουν calcSalary ή να πάρετε ένα σφάλμα /* Κωδικός * /} } ?
εικόνων
Η
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα