Αντικειμενοστραφής Προγραμματισμός

Σχετικά έγγραφα
Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Προγραμματισμός Διαδικτύου

Αρχιτεκτονική υπολογιστών

Δομές Δεδομένων Ενότητα 1

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 10 : Κατασκευή ΝΠΑ. Αλέξανδρος Τζάλλας

Λειτουργικά Συστήματα

Προγραμματισμός Διαδικτύου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 4 : Πράξεις με bits. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 8 : Πίνακες IΙ. Αλέξανδρος Τζάλλας

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Φωνολογική Ανάπτυξη και Διαταραχές

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Αρχιτεκτονική υπολογιστών

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Αντικειμενοστραφής Προγραμματισμός

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών

Προγραμματισμός Διαδικτύου

Δομημένος Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Οντοκεντρικός Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Δομημένος Προγραμματισμός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εισαγωγή στους Αλγορίθμους

Ηλεκτρονικοί Υπολογιστές

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Εισαγωγή στη γλώσσα προγραμματισμού C++

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διοικητική των επιχειρήσεων

Δομημένος Προγραμματισμός

Οντοκεντρικός Προγραμματισμός

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός Διαδικτύου

Εισαγωγή στους Αλγορίθμους

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 8 : Αυτόματα NFA - DFA. Αλέξανδρος Τζάλλας

Πληροφορική ΙΙ Θεματική Ενότητα 5

Ιστορία της μετάφρασης

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

Εισαγωγή στον δομημένο προγραμματισμό

Λειτουργικά Συστήματα

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Οντοκεντρικός Προγραμματισμός

Προγραμματισμός Ι Ενότητα 6 :

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Φωνολογική Ανάπτυξη και Διαταραχές

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 8: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 6 : Ελαστικότητα προσφοράς Καραμάνης Κωνσταντίνος

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 7 : Ισορροπία αγοράς Καραμάνης Κωνσταντίνος

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Οντοκεντρικός Προγραμματισμός

Ηλεκτρονικοί Υπολογιστές

Διδακτική της Πληροφορικής

Νοσηλευτική Σεμινάρια

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Μηχανολογικό Σχέδιο Ι

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Μάρκετινγκ Αγροτικών Προϊόντων

Νοσηλευτική Σεμινάρια

Λειτουργικά Συστήματα

Μάρκετινγκ Αγροτικών Προϊόντων

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Transcript:

1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αντικειμενοστραφής Προγραμματισμός Ενότητα 1 : Εισαγωγικές έννοιες και βασική δομή Ιωάννης Τσούλος

2 Ανοιχτά Ακαδημαϊκά Τμήμα Μηχανικών Πληροφορικής Τ.Ε Αντικειμενοστραφής Προγραμματισμός Ενότητα 1 : Εισαγωγικές έννοιες και βασική δομή Ιωάννης Τσούλος Επίκουρος Καθηγητής Άρτα, 2015

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 3 3

4 Αντικειμενοστραφής Προγραμματισμός Εισαγωγικές Έννοιες & Βασική δομή, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Χρηματοδότηση Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Ηπείρου» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Σχετικά με τη C++ Μια συνηθισμένη γλώσσα προγραμματισμού (π.χ. C, C++, PASCAL) μεταγλωττίζει τον πηγαίο κώδικα του προγράμματος σε εκτελέσιμη μορφή που να καταλαβαίνει ο επεξεργαστής. Η μορφή αυτή είναι η γλώσσα μηχανής, και διαφέρει για κάθε επεξεργαστή, αρχιτεκτονική και λειτουργικό σύστημα. Η εκτελέσιμη μορφή ενός προγράμματος για μια συγκεκριμένη αρχιτεκτονική, δεν είναι δυνατό να χρησιμοποιηθεί σε διαφορετική αρχιτεκτονική, δηλαδή δε μπορούμε να χρησιμοποιήσουμε το εκτελέσιμο πρόγραμμα για Windows σε έναν υπολογιστή Macintosh. Έτσι, είναι απαραίτητη η εκ νέου μεταγλώττιση του πηγαίου κώδικα (source code) για κάθε αρχιτεκτονική στην οποία θέλουμε να τρέξουμε το πρόγραμμα. 5 5

Σχετικά με τη C++ Μεταγλώττιση (compile) & Σύνδεση (link) Διαδικασία μεταγλώττισης ενός προγράμματος C++ και ενός προγράμματος Java 6 6

Σχετικά με τη C++ Διαδικαστικός ή Δομημένος Προγραμματισμός (Procedural ή Structured Programming) Οι παλαιότερες γλώσσες προγραμματισμού όπως οι C, PASCAL, FORTRAN έδιναν έμφαση στην διαδικασία και στα στάδια που ακολουθούνται για την επίτευξη κάποιου στόχου. Το αντικείμενο ήταν ο κώδικας (code-centric γλώσσες προγραμματισμού). Ο προγραμματισμός γινόταν ορίζοντας τη ροή εκτέλεσης (από το στάδιο Α, στο στάδιο Β) και τις αντίστοιχες υπορουτίνες. 7 7

Σχετικά με τη C++ Αντικειμενοστραφής προγραμματισμός (Object-Oriented Programming) Οι αντικειμενοστραφείς γλώσσες προγραμματισμού (Java, Eiffel, Smalltalk και φυσικά C++) δίνουν έμφαση στα δεδομένα παρά στον κώδικα. Το πρόγραμμα αναπτύσσεται γύρω από τα δεδομένα (data-centric) τα οποία ορίζουν από μόνα τους τον τρόπο με τον οποίο μπορούμε να τα διαχειριστούμε. Ο φυσικός και ο τεχνητός κόσμος που ζούμε είναι πιο κοντά στη φιλοσοφία του Αντικειμενοστραφή προγραμματισμού παρά του Δομημένου προγραμματισμού. 8 8

Σχετικά με τη C++ Αντικειμενοστραφής προγραμματισμός (Object-Oriented Programming) Πχ. Κάθε αυτοκίνητο είναι ένα αντικείμενο που ανήκει σε μια κλάση που ορίζει τα βασικά χαρακτηριστικά του αυτοκινήτου. Αυτά μπορεί να διαφέρουν ανάμεσα στους κατασκευαστές αλλά όλα θα παρέχουν τα βασικά χαρακτηριστικά που ορίζει η κλάση αυτοκίνητο για τη χρήση του (τιμόνι, γκάζι, φρένο, συμπλέκτης, ταχύτητες). Αυτά είναι τα δεδομένα. Κάθε ένα από αυτά ορίζει τον τρόπο χρήσης του. Το τιμόνι στρίβει αριστερά/δεξιά, τα πεντάλ πιέζονται ή αφήνονται και οι ταχύτητες αλλάζουν διακριτά έχοντας μηχανισμό ασφαλείας - δε μπορούμε να αλλάξουμε ταχύτητα σε όπισθεν ενώ το αυτοκίνητο κινείται με ταχύτητα. 9 9

Σχετικά με τη C++ Αντικειμενοστραφής προγραμματισμός (Object-Oriented Programming) Η υλοποίηση καθενός από αυτούς τους μηχανισμούς διαφέρει σε κάθε κατασκευαστή, αλλά η χρήση τους είναι η ίδια για όλους. Δηλαδή η χρήση του τιμονιού και των ταχυτήτων γίνεται με τον ίδιο τρόπο ανεξαρτήτως κατηγορίας, κατασκευαστή και μοντέλου του αυτοκινήτου. Επίσης, ο μηχανισμός με τον οποίο γίνεται η χρήση των δεδομένων αυτών είναι κρυμμένος από τον χρήστη (δηλαδή τον οδηγό). 10 1

Σχετικά με τη C++ Αντικειμενοστραφής προγραμματισμός (Object-Oriented Programming) Σημαντικότερα χαρακτηριστικά αντικειμενοστραφούς προγραμματισμού: o Encapsulation (): Η διαδικασίες κρύβονται από το χρήστη και τα ίδια τα δεδομένα προσδιορίζουν τους τρόπους διαχείρισης τους. o Polymorphism (πολυμορφισμός): Αντικείμενα που ανήκουν σε παρόμοιες κλάσεις μπορούν να έχουν κοινό τρόπο προσπέλασης, με αποτέλεσμα ο χρήστης να μπορεί να τα χειριστεί με τον ίδιο τρόπο χωρίς να χρειάζεται να μάθει νέες διαδικασίες. o Inheritance (κληρονομικότητα): Μπορούμε να δημιουργήσουμε ένα νέο αντικείμενο παίρνοντας ως βάση ένα άλλο ήδη υπάρχον. Το νέο αντικείμενο θα έχει τα χαρακτηριστικά του παλιού ενώ θα μπορεί να τα τροποποιήσει, να τα επεκτείνει και να προσθέσει καινούρια για να καλύψει συγκεκριμένες ανάγκες. 11 1

Δομή της C++ ΜΕΤΑΒΛΗΤΕΣ Ονομασμένη θέση μνήμης που μπορεί να περιέχει δεδομένα οποιουδήποτε είδους. Το περιεχόμενο της μεταβλητής μπορεί να μεταβάλλεται με δεδομένα παρόμοιου είδους. type var; type: είδος της μεταβλητής. var: όνομά της μεταβλητής. Eίδος: Ένας από τους διαθέσιμους τύπους δεδομένων της C++ ή το όνομα μιας κλάσης αντικειμένων. 12 1

Δομή της C++ Έυρος μεταβλητών Μια μεταβλητή θεωρείται έγκυρη, μόνο μέσα στο πλαίσιο στο οποίο ορίζεται. Το πλαίσιο μπορεί να είναι μια κλάση, μια συνάρτηση ή μέθοδος, το πεδίο ισχύος ενός loop for/while/do ή των εντολών if/else/switch. Παράδειγμα: type var1; if (συνθήκη) { // Επεξεργασία της var1 (σωστό). // Επεξεργασία της var2 (λάθος). type var2; // Επεξεργασία της var2 (σωστό) } // Επεξεργασία της var1 (σωστό) // Επεξεργασία της var2 (λάθος) 13 1

Δομή της C++ Τύποι δεδομένων Παράδειγμα: int an_integer; an_integer = 10; long a_long = an_integer *1000; double verysmallnumber = 0.000000000003; bool am_i_hungry = false; char alpha = 'a'; string text = this is a text ; Όνομα Μέγεθος (σε bytes) Όρια Char 1-128 έως 127 short Short 2-32,768 έως 32,767 int/long 4-2,147,483,648 έως -2,147,483,647 long long 8-9,223,372,036,854,775,808 έως -9,223,372,036,854,775,807 float 4 1.4 * 10-45 έως 3.4 * 10 38 double 8 4.9 * 10-324 έως 1.8 * 10 308 bool 1 true / false wchar 2 - string μεταβλητό - 14 1

Δομή της C++ unsigned μεταβλητές Μπορούμε να διαμορφώσουμε το εύρος των μεταβλητών char, short, int, long, long long ώστε να περιέχουν μόνο θετικούς αριθμούς. Οι τύποι αυτοί διαχωρίζονται με τους απλούς με τη λέξη unsigned πριν από το όνομα του τύπου. Όνομα Μέγεθος (σε bytes) Όρια unsigned char 1-128 έως 127 short unsigned short 2-32,768 έως 32,767 unsigned int/ unsigned long 4-2,147,483,648 έως -2,147,483,647 unsigned long long 8-9,223,372,036,854,775,808 έως -9,223,372,036,854,775,807 15 1

Δομή της C++ Σταθερές (constants) Μπορούμε να δηλώσουμε μια μεταβλητή ως σταθερά (δηλαδή που να μη μεταβάλλεται) με τη λέξη const. const double pi = 3.1415; 16 1

Δομή της C++ Τελεστές (operators) 4 είδη τελεστών στη C++ Αριθμητικοί τελεστές Σχεσιακοί Τελεστές Λογικοί Τελεστές Τελεστές καταχώρησης 17 1

Δομή της C++ Τελεστές (operators) 4 είδη τελεστών στη C++ Αριθμητικοί τελεστές Σχεσιακοί Τελεστές Λογικοί Τελεστές Τελεστές καταχώρησης Σύμβολο + Πρόσθεση - Αφαίρεση Είδος * Πολλαπλασιασμός / Διαίρεση % Υπόλοιπο Διαίρεσης ++ Αυξητικός τελεστής -- Αφαιρετικός τελεστής int x = 10; x++; // τώρα η τιμή x έχει την τιμή 11 x--; // και πάλι την τιμή 10 int x = 10; // το x έχει την τιμή 10 int y = x++; // y έχει την τιμή 10, αλλά το x την τιμή 11 x = 10; // το x έχει πάλι την τιμή 10 int z = ++x; // το z έχει την τιμή 11, όπως και το x) 18 1

Δομή της C++ Τελεστές (operators) 4 είδη τελεστών στη C++ Αριθμητικοί τελεστές Σχεσιακοί Τελεστές Λογικοί Τελεστές Τελεστές καταχώρησης Σύμβολο Είδος == Ισότητα!= Ανισότητα > Μεγαλύτερο από < Μικρότερο από >= Μεγαλύτερο από ή ίσο με <= Μικρότερο από ή ίσο με 19 1

Δομή της C++ Τελεστές (operators) 4 είδη τελεστών στη C++ Αριθμητικοί τελεστές Σχεσιακοί Τελεστές Λογικοί Τελεστές Τελεστές καταχώρησης Σύμβολο Είδος && Λογικό AND Λογικό OR! NOT (Άρνηση) (alpha == true) && (beta == 1) 20 2

Δομή της C++ Τελεστές (operators) 4 είδη τελεστών στη C++ Αριθμητικοί τελεστές Σχεσιακοί Τελεστές Λογικοί Τελεστές Τελεστές καταχώρησης Σύμβολο Είδος x += y το ίδιο με x = x + y x -= y το ίδιο με x = x - y x *= y το ίδιο με x = x * y x /= y το ίδιο με x = x / y x %= y το ίδιο με x = x % y x &= y το ίδιο με x = x & y x = y το ίδιο με x = x y ^= το ίδιο με x = x ^ y int x = 4; x = 10; x += 20; (είναι το ίδιο με την εντολή x = x + 20, τελικό αποτέλεσμα 30) x /= 10; (το ίδιο με x = x / 10, αποτέλεσμα 3). 21 2

Δομή της C++ Παραστάσεις (Expressions) Οποιοσδήποτε έγκυρος συνδυασμός μεταβλητών, σταθερών, αριθμών και τελεστών καλείται μια παράσταση. Το αποτέλεσμα της παράστασης μπορεί να είναι κάποιος από τους τύπους δεδομένων της C++ (int, long, double, bool, κλπ) ή κάποιο αντικείμενο (π.χ. string). int b = 10, i; i = 2*b*b; (παράδειγμα παράστασης) if (b * b <= 100 && i > 0) cout << The expression is true << endl; string a = "ena, dyo"; string b = a + string(", testing"); 22 2

Δομή της C++ Pointers & References Δυνατότητα άμεσης προσπέλασης στα περιεχόμενα της περιοχής της μνήμης που περιέχει κάποια μεταβλητή. Αν έχουμε μια μεταβλητή a τύπου string, το &a δείχνει στη διεύθυνση μνήμης της a. Αντίστροφα, αν μια μεταβλητή b είναι τύπου pointer ενός string, τότε έχουμε πρόσβαση στο περιεχόμενο της με τη χρήση του τελεστή *, ώστε το *b να επιστρέφει το ίδιο το string, ενώ το b μόνο του να επιστρέφει τη διεύθυνση μνήμης του string. string a( Hello ), *b; b = &a; cout << a << endl; cout << *b << endl; 23 2

Βιβλιογραφία 1. Εγχειρίδιο της C++, 2η Ελληνική έκδοση, Jesse Liberty, Γκιούρδας. 2. Μάθετε τη C++, 2η Ελληνική έκδοση, Jesse Liberty, Γκιούρδας. 3. Προγραμματισμός με τη γλώσσα C++ Μέρος Α, Αλεβίζος Θ., Έκδοση ΤΕΙ Καβάλας 4. C++ Αντικειμενοστραφής Προγραμματισμός Υπολογιστών Τομαράς Α.,, Εκδόσεις Νέων Τεχνολογιών. 5. Ανακαλύψτε τη γλώσσα C, J. Purdum, Εκδόσεις Δίαυλος. 6. Εισαγωγή στο Συστηματικό Προγραμματισμό και στη γλώσσα C++, Σ. Μπαλτζής, εκδόσεις πανεπιστημίου Ιωαννίνων. 7. C++ From the beginning, Jan Skansholm, Addison Wesley. 8. The design and analysis of computer algorithms, A.V. AHO, J.E. HOPCROFT, J.D. ULLMANN, Addison Wesley 1974. 9. Structure and Interpretation of Computer Programs, H. ABELSON, G.J. SUSSMAN, J. SUSSMAN, MIT Press, Mc Graw Hill Book Company, 1985 10. The art of computer programming, D.E. KNUTH, Addison-Wesley. 2

2 25 Αντικειμενοστραφής Προγραμματισμός Εισαγωγικές Έννοιες & Βασική δομή, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Σημείωμα Μαθήματα στο Αναφοράς ΤΕΙ Ηπείρου Copyright Τεχνολογικό Ίδρυμα Ηπείρου. Ιωάννης Τσούλος. Αντικειμενοστραφής Προγραμματισμός. Έκδοση: 1.0 Άρτα, 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.teiep.gr/courses/comp113/

Σημείωμα Μαθήματα Αδειοδότησης στο ΤΕΙ Ηπείρου Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 4.0 Διεθνές [1] ή μεταγενέστερη. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, Διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] http://creativecommons.org/licenses/by-nc-nd/4.0/deed.el 2

2 Αντικειμενοστραφής Προγραμματισμός Εισαγωγικές Έννοιες & Βασική δομή, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015

2 Τέλος Ενότητας Εισαγωγικές έννοιες και βασική δομή