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

Σχετικά έγγραφα
Διοικητική Λογιστική

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

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

Διοικητική Λογιστική

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

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

Βάσεις Περιβαλλοντικών Δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Τεχνικό Σχέδιο - CAD

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

Τεχνικό Σχέδιο - CAD

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

Εισαγωγή στην Πληροφορική

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

Διαχείριση Πολιτισμικών Δεδομένων

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

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

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

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

Διοικητική Λογιστική

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

Εισαγωγή στην Πληροφορική

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

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Διοικητική Λογιστική

Εισαγωγή στην Πληροφορική

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Βάσεις Περιβαλλοντικών Δεδομένων

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

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

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

Τεχνολογία Πολιτισμικού Λογισμικού

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική

Ασφάλεια Πληροφοριακών Συστημάτων

Τεχνολογία Πολιτισμικού Λογισμικού

ΠΕΡΙΒΑΛΛΟΝΤΙΚΗ ΠΟΛΙΤΙΚΗ & ΝΟΜΟΘΕΣΙΑ ΜΑΘΗΜΑ 1

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Τεχνικό Σχέδιο - CAD

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

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική

Τεχνικό Σχέδιο - CAD

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

ΟΡΓΑΝΩΣΗ & ΔΙΟΙΚΗΣΗ ΕΠΙΣΙΤΙΣΤΙΚΩΝ ΜΟΝΑΔΩΝ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Βάσεις Περιβαλλοντικών Δεδομένων

Τεχνικό Σχέδιο - CAD

ΔΙΟΙΚΗΣΗ ΔΙΕΘΝΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

Ασφάλεια Πληροφοριακών Συστημάτων

Βάσεις Περιβαλλοντικών Δεδομένων

Τεχνολογία Πολιτισμικού Λογισμικού

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

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

Τεχνικό Σχέδιο - CAD

Προγραμματισμός Η/Υ. 6 η ενότητα: Συναρτήσεις. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

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

Τεχνικό Σχέδιο - CAD

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

Ασφάλεια Πληροφοριακών Συστημάτων

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική

Οργάνωση και Λειτουργία Ταξιδιωτικής Βιομηχανίας Ι

Βάσεις Περιβαλλοντικών Δεδομένων

Ασφάλεια Πληροφοριακών Συστημάτων

ΟΡΓΑΝΩΣΗ & ΔΙΟΙΚΗΣΗ ΕΠΙΣΙΤΙΣΤΙΚΩΝ ΜΟΝΑΔΩΝ

Εισαγωγή στην Πληροφορική

Φυσική Οπτική (Ε) Ανοικτά Ακαδημαϊκά Μαθήματα. Ενότητα 1: Υπολογισμός εστιακής απόστασης θετικού φακού από την μετατόπισή του. Αθανάσιος Αραβαντινός

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

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

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

Ηλεκτροτεχνία Ηλ. Μηχανές & Εγκαταστάσεις πλοίου (Θ)

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

ΔΙΟΙΚΗΣΗ ΠΑΡΑΓΩΓΗΣ Ενότητα 5

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

Μηχανές Πλοίου ΙΙ (Ε)

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Διοικητική Λογιστική

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

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

Ενότητα. Εισαγωγή στη Microsoft Access

Φυσική Εικόνας & Ήχου ΙΙ (Ε)

Προγραμματισμός Η/Υ. 3 η ενότητα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

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

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

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

Transcript:

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 7: Υπερφόρτωση διμελών τελεστών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Αντικειμενοστραφής Προγραμματισμός Διάλεξη 7

Περιεχόμενα Υπερφόρτωση διμελών τελεστών Παράδειγμα χρήσης κλάσης

Υπερφόρτωση Διμελών τελεστών Μέχρι τώρα είδαμε την υπερφόρτωση σε μονομελείς τελεστές (++,--) Οι διμελείς τελεστές μπορούν να υπερφορτωθούν το ίδιο εύκολα Στο παράδειγμα με την κλάση Counter θα επιθυμούσαμε να μπορούμε να γράψουμε την παράσταση c3 = c1 + c2 Για να συμβεί αυτό θα πρέπει να υπερφορτώσουμε τον τελεστή +

Υπερφόρτωση Διμελών τελεστών class Counter{ public: Counter(); Counter(int a); ~Counter(); int get_count(); void set_count(int a); Counter operator++(); Counter operator++(int); Counter operator+(counter f) const; private: int count; };

Υπερφόρτωση Διμελών τελεστών Counter Counter::operator+(Counter c1) const { int cc = count + c1.count; return Counter(cc); }

Υπερφόρτωση Διμελών τελεστών int main() { Counter c1,c2,c3; } c1.set_count(0); cout<<"counter Value:"<<c1.get_count()<<endl; c2 = ++c1; cout<<"counter Value (c2):"<<c2.get_count()<<endl; cout<<"counter Value (c1):"<<c1.get_count()<<endl; c3 = c1 + c2; cout<<"counter Value (c3):"<<c3.get_count()<<endl; return 0;

Υπερφόρτωση Διμελών τελεστών Στην παράσταση c3 = c1 + c2 ο μεταγλωτιστής εξετάζει τον τύπο τον ορισμάτων και βρίσκοντας μόνο αντικείμενα τύπου Counter αντιλαμβάνεται ότι πρέπει να χρησιμοποιήσει τη μέθοδο operator+() της κλάσης Counter. Όμως τι χρησιμοποιεί ως όρισμα στη συνάρτηση; Θα καλέσει τη μέθοδο του αντικειμένου c1 ή του c2; Το αντικείμενο στα αριστερά του τελεστή είναι το αντικείμενο όπου ο τελεστής είναι μέλος. Το αντικείμενο στα δεξιά θα περάσει ως όρισμα στη μέθοδο Γενίκευση: ένας υπερφορτωμένος τελεστής απαιτεί πάντα ένα όρισμα λιγότερο από τον αριθμό των τελεστέων

Υπερφόρτωση Διμελών τελεστών Αν θέλαμε να μπορούμε να γράφαμε παραστάσεις της μορφής c3>c1 ποιον τελεστή θα υπερφορτώναμε; Αν θέλαμε να μπορούμε να γράφαμε παραστάσεις της μορφής c3==c1 ποιον τελεστή θα υπερφορτώναμε;

Παράδειγμα Στο παρακάτω πρόγραμμα σας ζητήτε να υλοποιήσετε μια κλάση που θα αναφέρεται στην έννοια των μιγαδικών αριθμών (complex numbers). Ένας μιγαδικός αριθμός χαρακτηρίζεται από τον πραγματικό και φανταστικό μέρος του. Το πραγματικό και φανταστικό μέρος είναι οι ιδιότητες του μιγαδικού αριθμόυ και θα αποτελούν τα ιδιωτικά μέλη της κλάσης Complex που θα ορίσετε.

Παράδειγμα Θα πρέπει να υλοποιήσετε τις παρακάτω συναρτήσεις της κλάσης Complex: 1. Συναρτήσεις Δημιουργίας με 0 ή 2 ορίσματα. Στην περίπτωση που δεν υπάρχουν ορίσματα θα δώσετε τις τιμές 0 για το πραγματικό και φανταστικό μέρος του μιγαδικού αριθμού. 2. Συναρτήσεις πρόσβασης για τα ιδιωτικά μέλη της κλάσης. 3. Υπερφόρτωση του τελεστή + (operator+) που θα προσθέτει 2 αντικείμενα τύπου Complex.

Παράδειγμα Στην main συνάρτηση θα δημιουργήσετε 2 αντικείμενα τύπου Complex, θα δώσετε τιμές σε αυτά μέσω των συναρτήσεων δημιουργίας. Έπειτα θα εμφανίσεται στην οθόνη το πραγματικό και φανταστικό μέρος του κάθε μιγαδικού στην μορφή {Pragmatiko:<τιμή πραγματικού μέρους>, Fantastiko:<τιμή φαντστικού μέρους>}. Η εμφάνιση των τιμών θα γίνει με χρήση των συναρτήσεων πρόσβασης. Επίσης, θα εμφανίσετε στην οθόνη το αθροισμα των δυο αντικειμένων τύπου Complex, στην ίδια μορφή οπως προηγουμένως. Προσοχή στο πρόγραμμα σας ουσιαστικά θα δηλώσετε 3 αντικείμενα τύπου Complex, δύο που σας ζητούνται και ένα για να αποθηκεύσετε την πρόσθεση. Στο πρόγραμμα μας το πραγματικό και φανταστικό μέρος είναι ακέραιοι αριθμοί.

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

Επεξήγηση όρων χρήσης έργων τρίτων διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-ND διαθέσιμο με άδεια CC-BY-NC διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

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