Τι είναι το Inheritance Constructor στη C++

Ti Einai To Inheritance Constructor Ste C



Σε C++, κληρονομία είναι μια βασική έννοια στον αντικειμενοστραφή προγραμματισμό. Μια παραγόμενη κλάση μπορεί να κληρονομήσει τα χαρακτηριστικά και τις συμπεριφορές μιας βασικής κλάσης χάρη στους ισχυρούς κληρονομία δυνατότητα σε C++. Μια παραγόμενη κλάση κληρονομεί αμέσως όλα τα μέλη της βασικής κλάσης όταν σχηματιστεί. Είναι απαραίτητο για τον κατασκευαστή παραγόμενης κλάσης να αρχικοποιήσει και τα μέλη της βασικής κλάσης. Σε C++, κληρονομία είναι ένα ισχυρό χαρακτηριστικό που επιτρέπει στους προγραμματιστές να επαναχρησιμοποιούν κώδικα, να βελτιώνουν την αποτελεσματικότητα και να οργανώνουν τον κώδικα σε λογικές ιεραρχίες.

Μαζί με την κληρονομικότητα, οι κατασκευαστές είναι επίσης σημαντικοί στη C++. ΕΝΑ κατασκευαστής είναι μια μοναδική συνάρτηση μέλους που σας επιτρέπει να αρχικοποιήσετε τις ιδιότητες του αντικειμένου. Ενα Κατασκευαστής κληρονομικότητας είναι ένας κατασκευαστής που χρησιμοποιείται για την προετοιμασία τόσο της βασικής κλάσης όσο και των αντικειμένων της παραγόμενης κλάσης που έχει κληρονομήσει η παραγόμενη κλάση. ο κατασκευαστής κληρονομικότητας είναι υπεύθυνος για την προετοιμασία τόσο των κληρονομούμενων μελών κλάσης βάσης όσο και των παραγόμενων μελών κλάσης. Για να επιτευχθεί αυτό, ο κατασκευαστής καλεί τον κατασκευαστή της βασικής κλάσης, διασφαλίζοντας ότι όλα τα μέλη της παραγόμενης κλάσης έχουν αρχικοποιηθεί σωστά, συμπεριλαμβανομένων εκείνων που κληρονομήθηκαν από τη βασική κλάση.

Επικαλώντας τον κατασκευαστή της βασικής κλάσης και μεταβιβάζοντάς του τις απαραίτητες παραμέτρους, το κατασκευαστής κληρονομικότητας αρχικοποιεί τα μέλη της βασικής κλάσης. Αυτό επιτυγχάνεται χρησιμοποιώντας το «βασική τάξη (args)» λίστα αρχικοποίησης στον κατασκευαστή. Περαιτέρω οδηγίες ειδικά για την παράγωγη κλάση παρέχονται στο σώμα του κατασκευαστή.







Η σύνταξη για κληρονομώντας μια κλάση στην C++ είναι:



τάξη ΠαράγωγηΚλάση : AccessSpecifier BaseClass {
// μέλη της τάξης
} ;

Η νέα τάξη που σχηματίζεται σε αυτή την περίπτωση, 'Παραγωγή κλάσης', θα κληρονομήσει από «BaseClass». Το επίπεδο πρόσβασης στα κληρονομικά μέλη καθορίζεται από το « AccessSpecifier». Η C++ χρησιμοποιεί τρεις τύπους προσδιοριστών πρόσβασης, συγκεκριμένα 'δημόσιο ιδιωτικό', και «προστατεύεται» . Η λέξη 'δημόσιο' υποδεικνύει ότι η παραγόμενη κλάση έχει πρόσβαση στα δημόσια μέλη της βασικής κλάσης. Η παραγόμενη κλάση δεν έχει πρόσβαση στα μέλη της βασικής κλάσης, σύμφωνα με το 'ιδιωτικός' προσδιοριστής. Η παραγόμενη κλάση έχει πρόσβαση στα προστατευμένα μέλη της βασικής κλάσης που μπορούν να κληρονομηθούν από τις θυγατρικές τους κλάσεις, σύμφωνα με «προστατεύεται» προσδιοριστής.



Παράδειγμα κληρονομικότητας στη C++

Το ακόλουθο παράδειγμα δείχνει την υλοποίηση του Κληρονομία σε C++:





#include
χρησιμοποιώντας χώρο ονομάτων std ;

τάξη Ζώο {
δημόσιο :
κενός τρώω ( ) {
cout << 'Μπορώ να φάω!' << endl ;
}
κενός ύπνος ( ) {
cout << 'Μπορώ να κοιμηθώ!' << endl ;
}
} ;
τάξη Γάτα : δημόσιο Ζώο {
δημόσιο :
κενός Νιάου ( ) {
cout << 'Μπορώ να νιαουρίζω!' << endl ;
}
} ;
ενθ κύριος ( ) {
Γάτα γάτα 1 ;
γάτα 1. τρώω ( ) ;
γάτα 1. ύπνος ( ) ;
γάτα 1. Νιάου ( ) ;

ΕΠΙΣΤΡΟΦΗ 0 ;
}

Ο δεδομένος κώδικας ορίζει δύο κλάσεις, 'Ζώο' και 'Γάτα' , που 'Γάτα' προέρχεται από 'Ζώο' . Και οι δύο κλάσεις έχουν κάποιες λειτουργίες μέλους, όπως π.χ «φάω», «κοιμήσου» , και 'Νιάου' . Η κύρια συνάρτηση δημιουργεί ένα αντικείμενο της κλάσης 'Γάτα' και καλεί το κληρονόμησε λειτουργίες από την τάξη 'Ζώο' καθώς και τη συγκεκριμένη λειτουργία της τάξης 'Γάτα' , το οποίο είναι 'Νιάου' . Το πρόγραμμα εξάγει το κείμενο στην κονσόλα, υποδεικνύοντας ότι η γάτα μπορεί να φάει, να κοιμηθεί και να νιαουρίσει.

Παραγωγή



Όταν προέρχεται μια κλάση, όλες οι μεταβλητές μέλους και οι συναρτήσεις μέλους της βασικής κλάσης μεταφέρονται στην παράγωγη κλάση. ο κληρονόμησε Η προσβασιμότητα των μελών στην παράγωγη κλάση καθορίζεται από τον προσδιοριστή πρόσβασης. Η παραγόμενη κλάση μπορεί επίσης να αντικαταστήσει νέα χαρακτηριστικά για εκείνα που ήδη υπάρχουν. Μπορεί να προσθέσει νέες υλοποιήσεις για τις μεθόδους της βασικής κλάσης και να προσθέσει νέες συναρτήσεις μελών και μεταβλητές.

Είναι σημαντικό να θυμόμαστε ότι το κατασκευαστής κληρονομικότητας πρέπει να χρησιμοποιηθεί για τη ρητή κλήση του κατασκευαστή της βασικής κλάσης με τις απαραίτητες παραμέτρους εάν η βασική κλάση έχει έναν προεπιλεγμένο κατασκευαστή ή εάν δεν είναι διαθέσιμος.

συμπέρασμα

Το δυνατό χαρακτηριστικό του κληρονομία στη C++ επιτρέπει στις κλάσεις να επαναχρησιμοποιούν κώδικα κληρονομώντας χαρακτηριστικά και ενέργειες από άλλες. Ένα χρήσιμο χαρακτηριστικό της C++ κατασκευαστής κληρονομικότητας επιτρέπει στις παραγόμενες κλάσεις να κληρονομούν τις ιδιότητες, τις μεθόδους και τα μέλη δεδομένων μιας βασικής κλάσης. Με την προσθήκη μιας λίστας αρχικοποίησης για κατασκευαστές βασικής κλάσης, ορίζεται χρησιμοποιώντας την ίδια σύνταξη με έναν τυπικό κατασκευαστή. Οι προγραμματιστές C++ μπορούν να ελαχιστοποιήσουν την αντιγραφή κώδικα και να βελτιώσουν τη δομή του κώδικα χρησιμοποιώντας το κατασκευαστής κληρονομικότητας . Για τη δημιουργία σύνθετων ιεραρχιών κλάσεων στον αντικειμενοστραφή προγραμματισμό, είναι ένα σημαντικό εργαλείο.