Αντικειμενοστρεφής προγραμματισμός στη C: Διαφορά μεταξύ των αναθεωρήσεων
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ προστέθηκε η Κατηγορία:Αντικειμενοστραφής προγραμματισμός (με το HotCat) |
Perge (συζήτηση | συνεισφορές) μΧωρίς σύνοψη επεξεργασίας |
||
Γραμμή 48:
==Κληρονομικότητα==
Κληρονομικότητα στον
===Από τη C++ στη C===
Γραμμή 94:
</source>
Η χρήση δεικτών σε συναρτήσεις γίνεται ώστε να επιτευχθεί η ενθυλάκωση, η σύνδεση δηλαδή των δεδομένων με τις μεθόδους. Οι
===Κληρονομικότητα C===
Γραμμή 120:
====Η κλάση "Class"====
Θέλουμε να κατασκευάσουμε την κλάση "Point" με τέτοιο τρόπο ώστε η κλάση "Circle" να μπορεί να κληρονομήσει απ ο αυτή. Κάθε κλάση στον
<source lang="C">
struct Class {
Γραμμή 224:
Στη C τα πρότυπα (templates), μπορούν να προσομοιωθούν με την χρήση των μακροεντολών (macros) που προσφέρει ο [[προεπεξεργαστής]] (preprocessor). Έτσι, την «αντιληπτική» ικανότητα των προτύπων να αρχικοποιούνται και να συμπεριφέρονται αναλόγως με τον τύπο δεδομένων την προσομοιώνει η C με την χρήση των μακροεντολών, όπου παράγεται κώδικας με την διαχείριση και αντικατάσταση κειμένου που γράφεται στις μακροεντολές κατά το χρόνο μεταγλώτισσης.
Μία από τις πιο έντονες χρήσεις της προσομοίωσης των templates απαντάται στον κώδικα του [[Πυρήνας Linux|πυρήνα του Linux]], όπου έχουν υλοποιηθεί δομές όπως η λίστα, η ούρα κτλ., και μπορεί να βρεθεί στην βιβλιοθήκη sys/sys/queue.h<ref name="queue">[http://fxr.watson.org/fxr/source/sys/queue.h
Αντιγράφοντας από τον προαναφερθέντα κώδικα μπορεί κανείς να παρατηρήσει τη διαχείριση της αντικατάστασης κειμένου για την παραγωγή κώδικα με σκοπό την δημιουργία ενός στοιχείου της λίστας καθώς και της κεφαλής της λίστας:
|