Ορισμένες γλώσσες προγραμματισμού που βασίζονται σε αντικείμενα έχουν τη λέξη-κλειδί «super», η οποία επιτρέπει σε μια υποκλάση να καλεί συναρτήσεις και μέλη της βασικής ή γονικής κλάσης. Ορισμένες γλώσσες προγραμματισμού καθορίζουν πώς πρέπει να χρησιμοποιείται συγκεκριμένα η λέξη-κλειδί «super». Αλλά στην περίπτωση της C++, η λέξη-κλειδί super δεν χρησιμοποιείται με τον ίδιο τρόπο όπως στην Java και την Python. Σε αυτό το σεμινάριο, θα μελετήσουμε και θα επιδείξουμε την εξομοίωση υπερλέξεων-κλειδιών στη C++.
Πώς να προσομοιώσετε τη σούπερ λέξη-κλειδί σε C++
Η λέξη-κλειδί που είναι γνωστή ως 'super' δεν είναι προκαθορισμένη στον μεταγλωττιστή C++. Η κληρονομικότητα και η παράκαμψη συνάρτησης χρησιμοποιούνται για την ανάπτυξη μιας υποκλάσης που παίρνει τα μέλη και τις μεθόδους της υπερκλάσης της. Απλώς δώστε το αναγνωριστικό της «υπερκλάσης» και το μέλος ή τη μέθοδο που θέλετε να αποκτήσετε πρόσβαση με τον χειριστή (::).
Σύνταξη
Μπορείτε να αποκτήσετε πρόσβαση σε μια μέθοδο σε μια υπερκλάση που ονομάζεται 'parent_class' που έχει ένα όνομα όπως 'parent_function()' σε μια υποκλάση χρησιμοποιώντας τη σύνταξη που φαίνεται παρακάτω:
parent_class::parent_function ( ) ;
Παράδειγμα
Χρησιμοποιώντας τη C++ για την εξομοίωση της λειτουργικότητας υπερ-κλειδιών για πρόσβαση στις ιδιότητες μιας γονικής κλάσης, χρησιμοποιήστε τον τελεστή ανάλυσης πεδίου (::).
Ο τελεστής ανάλυσης πεδίου (::) μπορεί να χρησιμοποιηθεί για την απόκτηση των μελών μιας γονικής κλάσης κάθε φορά που μια κλάση κληρονομεί από αυτήν. Εξετάστε τον ακόλουθο κώδικα ως παράδειγμα:
#includeχρησιμοποιώντας namespace std?
class base_Class {
δημόσιο:
κενή βάσηΣυνάρτηση ( ) {
cout << 'Αυτό είναι το outout της BaseFunction από την βασική κλάση' << endl;
}
} ;
class derived_Class: public base_Class {
δημόσιο:
void dFunction ( ) {
base_Class::baseFunction ( ) ;
cout << 'Αυτή προέρχεται η κλάση που έχει πρόσβαση στη βασική λειτουργία από τη βασική κλάση' << endl;
}
} ;
int main ( ) {
παράγωγο_Κλάση d;
d.dFunction ( ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}
Το παραπάνω πρόγραμμα έχει μια συνάρτηση από τη βασική ή γονική κλάση baseFunction(). Μια άλλη παραγόμενη κλάση ορίζεται η οποία έχει πρόσβαση στη baseFunction() στο dFunction(). Η κύρια μέθοδος είναι πρώτα η δημιουργία μιας παρουσίας της derived_class και η κλήση της dFunction() που εκτυπώνει την έξοδο τόσο της baseFunction() όσο και της dFunction().
συμπέρασμα
Αν και η λέξη-κλειδί «super» δεν υπάρχει άμεσα στη C++, η συμπεριφορά της μπορεί να μιμηθεί συνδυάζοντας την κληρονομικότητα και τις παρακάμψεις συναρτήσεων. Μπορούμε να καλέσουμε και να χρησιμοποιήσουμε με επιτυχία μεθόδους ή μέλη της υπερκλάσης καλώντας πρώτα τις συναρτήσεις της υπερκλάσης πριν προχωρήσουμε στην υλοποίηση της υποκλάσης. Αυτή η ανάρτηση παρείχε επίσης ένα παράδειγμα κώδικα C++ για καλύτερη κατανόηση.