Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί Ενότητας Απόκτηση βασικών γνώσεων και εισαγωγικών εννοιών της γλώσσας προγραμματισμού C++ 4
Περιεχόμενα Εισαγωγή Υπερφόρτωση συνάρτησης Εξ' ορισμού τιμή παραμέτρου Αναφορικές μεταβλητές 5
Εισαγωγή Ο Bjarne Stroustrup, εργαζόμενος στα εργαστήρια Bell, ανέπτυξε την γλώσσα C++ βασιζόμενος στην γλώσσα C, στην περίοδο 1983-1985. Το 1997, μετά από προσθήκες και βελτιώσεις, οριστικοποιήθηκε και πιστοποιήθηκε το πρότυπο της γλώσσας. Σήμερα αποτελεί την γλώσσα επιλογής για τους περισσότερους προγραμματιστές για την ανάπτυξη πολύπλοκων εφαρμογών, σε κάθε λειτουργικό σύστημα. 6
Εισαγωγή (2) Η C++ αποτελεί ένα υπερσύνολο της C, επομένως ένα πρόγραμμα σε C μεταγλωττίζεται από μεταγλωττιστή (compiler) της C++. Η C++ κληρονόμησε από την C και την μεγάλη ελευθερία με περιορισμένο έλεγχο λαθών, που δίνει ελευθερία, ευελιξία, αποδοτικό κώδικα αλλά δεν συγχωρεί τις απροσεξίες. Μαζί με την Java και την C# είναι οι πιο δημοφιλείς γλώσσες αντικειμενοστρεφούς προγραμματισμού (Object Oriented Programming). Η C++ υποστηρίζει τα χαρακτηριστικά του αντικειμενοστρεφούς προγραμματισμού: αφαιρετικότητα (abstraction), ενθυλάκωση (encapsulation), πολυμορφισμό (polymorphism), κληρονομικότητα (iheritance). 7
Υπερφόρτωση (του ονόματος) συνάρτησης Με την υπερφόρτωση μπορούμε να έχουμε μέσα στο ίδιο πρόγραμμα 2 ή περισσότερους ορισμούς συναρτήσεων με το ίδιο όνομα. Οι συναρτήσεις πρέπει να διαφέρουν: είτε ως προς τον τύπο των παραμέτρων τους είτε ως προς τον αριθμό των παραμέτρων τους. Εξ' ορισμού (προκαθορισμένη) τιμή παραμέτρου. Στην C++ μπορούμε να δώσουμε προκαθορισμένες τιμές σε παραμέτρους συνάρτησης. Σε αυτή την περίπτωση μπορούμε να καλέσουμε την συνάρτηση παραλείποντας το αντίστοιχο όρισμα, για το οποίο θα χρησιμοποιηθεί η προκαθορισμένη τιμή. 8
Αναφορικές μεταβλητές (1) Μια αναφορική μεταβλητή (reference variable) δηλώνεται όπως και μια συνηθισμένη μεταβλητή, αλλά με το σύμβολο & πριν το όνομά της. Μια αναφορική μεταβλητή αναφέρεται σε μια άλλη μεταβλητή. Η μεταβλητή αυτή, της ανατίθεται κατά τη δήλωσή της: int &y; int x; int &y = x; 9
Αναφορικές μεταβλητές (2) Ουσιαστικά, η αναφορική μεταβλητή y είναι ψευδώνυμο της x. Οι μεταβλητές x και y αναφέρονται στην ίδια θέση μνήμης. Η εντολή y=10 θα έχει σαν αποτέλεσμα να είναι 10 και τη τιμή της x (στην πραγματικότητα είναι η ίδια μεταβλητή στη μνήμη). Μπορούμε να βάλουμε σαν παραμέτρους συνάρτησης αναφορικές μεταβλητές. Αυτό συνεπάγεται ότι μεταβολές στις τιμές των παραμέτρων της συνάρτησης εφαρμόζονται και στις τιμές των ορισμάτων. 10
Βιβλιογραφία Δημήτρης Συνδουκάς 2007, Αντικειμενοστρεφής προγραμματισμός με C++ - Ασκήσεις, Εσωτερική έκδοση του ΤΕΙ Νίκος Μ. Χατζηγιαννάκης 2008, Η Γλώσσα C++ σε βάθος (1η έκδοση), ΚΛΕΙΔΑΡΙΘΜΟΣ ΕΠΕ, Αθήνα [ISBN: 978-960-461-143-0] Walter Savitch. 2011, Πλήρης C++ (1η έκδοση), Α. ΤΖΙΟΛΑ & ΥΙΟΙ Ο.Ε., Αθήνα, [ISBN: 978-960-418-358-6] Herbert Schildt 2005, C++ Βήμα προς Βήμα (2η έκδοση), Α. ΤΖΙΟΛΑ & ΥΙΟΙ Ο.Ε., Αθήνα, [ISBN: 960-512-449-1] Harvey M.Deitel, Paul J. Deitel, 2011, C++ Προγραμματισμός (6η έκδοση), Γκιούρδας Μ., Αθήνα, [ISBN: 978-960-512-5912] Jesse Liberty 2006, Πλήρες Εγχειρίδιο της C++ (Πέμπτη έκδοση), Γκιούρδας Μ., Αθήνα, [ISBN: 978-960-512-318-5] Deitel Paul J.,Deitel Harvey M., Java Προγραμματισμός, 8 η έκδοση, Εκδόσεις Χ. Γκιούρδα και ΣΙΑ, 2008, ISBN: 978-960-512-592-9. Savitch Walter, Java, 4 η έκδοση, 2007, Εκδόσεις Α. Τζιόλα και Υιοί, ISBN: 978-960-418-147-6. 11
Τέλος Ενότητας
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο. που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο. που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο. Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 13
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς. το Σημείωμα Αδειοδότησης. τη δήλωση Διατήρησης Σημειωμάτων. το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει). μαζί με τους συνοδευόμενους υπερσυνδέσμους. 14