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

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Perge (συζήτηση | συνεισφορές)
μΧωρίς σύνοψη επεξεργασίας
αφαιρεση παραπ σε ΒΠ
Γραμμή 48:
 
==Κληρονομικότητα==
Κληρονομικότητα στον αντικειμενοστρεφή προγραμματισμό αναφέρεται στη δυνατότητα επαναχρησιμοποίησης κώδικα από ήδη υπάρχοντα αντικείμενα, στη δημιουργία νέων αντικειμένων τα οποία μοιράζονται ιδιότητες με ήδη υπάρχοντα ή και τα δύο ανάλογα τη γλώσσα προγραμματισμού. Ένα αντικείμενο αντικείμενο αποτελεί ένα στιγμιότυπο μιας κλάσης, οι κλάσεις μπορούν να κληρονομούν από άλλες κλάσεις τόσο τα γνωρίσματα όσο και της μεθόδους. Η κύρια κλάση ονομάζεται βάση (base class), ενώ οι κλάσεις οι οποίες κληρονομούν από αυτή ονομάζονται παραγόμενες (derived). Η "base class" επιτρέπει τη δημιουργία μίας γενικής διεπαφής που παρέχει πιο εξειδικευμένες λειτουργίες με τη χρήση εικονικών μεθόδων (virtual functions)<ref name="virtualFunction">[http://en.wikipedia.org/wiki/Virtual_function Virtual Functions]</ref>.
===Από τη C++ στη C===
Γραμμή 206:
Τα πρότυπα είναι μία αρκετά εύχρηστη λειτουργία των αντικειμενοστρεφών γλωσσών με την οποία μπορούν να δημιουργηθούν αλγόριθμοι και αφηρημένες μέθοδοι για να προσδιοριστούν έπειτα αναλόγως με τους τύπους δεδομένων που θα συσχετιστούν.
 
Εν γένει, τα πρότυπα είναι λειτουργία [[μεταπρογραμματισμός|μεταπρογραμματισμού]] (metaprogramming)<ref name="metaprogramming">[http://en.wikipedia.org/wiki/Metaprogramming Metaprogramming]</ref>, χρησιμοποιούμενη από αρκετές γλώσσες μεταξύ των οποίων και η C++, με την οποία επιτρέπεται η δημιουργία ενός γενικού αλγόριθμου ο οποίος μπορεί να χρησιμοποιηθεί όταν συσχετιστεί με κάποιον τύπο δεδομένων και για οποιονδήποτε τύπο δεδομένων.
Η πιο συνηθισμένη χρήση των templates είναι για την υλοποίηση δομών δεδομένων(Containers) οι οποίες μπορούν να χρησιμοποιηθούν για οποιονδήποτε τύπο δεδομένων. Έτσι, ο προγραμματιστής μπορεί να χρησιμοποιήσει έτοιμο αλγόριθμο, όπως η λειτουργία μίας λίστας, με διαφορετικούς τύπους δεδομένων αρχικοποιώντας κάθε φορά την δομή αυτή με τον τύπο δεδομένων που επιθυμεί. Ένα παράδειγμα είναι η κλάση CAtlArray, της βιβλιοθήκης atlcoll.h, που ανήκει στη βιβλιοθήκη ATL (Active Template Library)<ref name="ATL">[http://en.wikipedia.org/wiki/Active_Template_Library]</ref>. Ενδεικτικά, για τη λειτουργία της αρχικοποίησης:
<source lang="C">