Αντικειμενοστρεφής προγραμματισμός στη C: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Δημιουργία του άρθρου
Ετικέτα: μεγάλη προσθήκη
 
Γραμμή 53:
Κληρονομικότητα στον αντικειμενοστραφή προγραμματισμό αναφέρεται στη δυνατότητα επαναχρησιμοποίησης κώδικα από ήδη υπάρχοντα αντικείμενα, στη δημιουργία νέων αντικειμένων τα οποία μοιράζονται ιδιότητες με ήδη υπάρχοντα ή και τα δύο ανάλογα τη γλώσσα προγραμματισμού. Ένα αντικείμενο αντικείμενο αποτελεί ένα στιγμιότυπο μιας κλάσης, οι κλάσεις μπορούν να κληρονομούν από άλλες κλάσεις τόσο τα γνωρίσματα όσο και της μεθόδους. Η κύρια κλάση ονομάζεται βάση (base class), ενώ οι κλάσεις οι οποίες κληρονομούν από αυτή ονομάζονται παραγόμενες (derived). Η "base class" επιτρέπει τη δημιουργία μίας γενικής διεπαφής που παρέχει ποιο εξειδικευμένες λειτουργίες με τη χρήση εικονικών μεθόδων (virtual functions)<ref name="virtualFunction">[http://en.wikipedia.org/wiki/Virtual_function Virtual Functions]</ref>.
===Απ,οΑπό τη C++ στη C===
Πριν παρουσιάσουμε την κληρονομικότητα στη C πρέπει να δούμε πως αναπαριστούμε μία κλάση.
Ορίζουμε λοιπόν την κλάση "Person" στη γλώσσα C++, η οποία αποτελείται από τα πεδία pFirstName, pLastName; καθώς και κάποιες μεθόδους οι οποίες επιδρούν στα δεδομένα αυτά.
Γραμμή 98:
</source>
Η χρήση δεικτών σε συναρτήσεις γίνεται ώστε να επιτευχθεί η ενθυλάκωση, η σύνδεση δηλαδή των δεδομένων με τις μεθόδους. Οι αντικειμενοστραφής γλώσσες προγραμματισμού παρέχουν τη δυνατότητα άμεσης πρόσβασης το δεδομένων μέσα απ ο τις μεθόδους της κλάσης με τη χρήση του δείκτη "this". Καθώς ο δείκτης αυτός δεν υπάρχει στη γλώσσα C θα πρέπει με κάποιο τρόπο οι μέθοδοι να γνωρίζουν απ ο ποιο αντικείμενο να αντλήσουν και να τροποποιήσουν τα δεδομένα, για να γίνει αυτό θα πρέπει να υπάρχει μια αναφορά στο αντικείμενο το οποίο θα τροποποιήσουν, η οποία δίνεται σαν όρισμα.
 
===Κληρονομικότητα C===
Για να επιτύχουμε την κληρονομικότητα στη C θα πρέπει με κάποιο τρόπο η παραγόμενη κλάση να γνωρίζει ποια είναι η κλάση βάση, να έχει δηλαδή μία αναφορά προς την κλάση βάση. Αυτό επιτυγχάνεται με την προσθήκη ενός στιγμιότυπου, της κλάσης βάση, στην παραγόμενη κλάση. Μπορούμε λοιπόν να μετατρέψουμε (casting) την παραγόμενη κλάση στην κλάση βάση (πολυμορφισμός), αλλά και να χρησιμοποιήσουμε της μεθόδους της κλάσης βάσης (κληρονομικότητα).