ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)

Σχετικά έγγραφα
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D.

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

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

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections

Προγραμματισμός Ι. Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό

ΑΝΑΚΕΦΑΛΑΙΩΣΗ. Τα βασικά για την γλώσσα Java

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων)

Ειδικά Θέματα Προγραμματισμού

Εισαγωγή στον Προγραμματισμό με C++

Κλάσεις και αντικείμενα #include <iostream.h<

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Τελικό τεστ - απαντήσεις

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Δομές Δεδομένων & Αλγόριθμοι

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Αλφαριθµητικά Κλάση string

Εξαιρέσεις στην Java EXCEPTIONS IN JAVA

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Πίνακες.

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

Στοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Εξαιρέσεις στη Java. Περιεχόμενα. Κάποιες προκαθορισμένες ρ εξαιρέσεις. Κωστής Σαγώνας

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Εξαιρέσεις. try, catch, finally, throw, throws

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπερφόρτωση Αντικείμενα σαν ορίσματα

Προγραµµατιστικές τεχνικές

Υπερφόρτωση τελεστών

Θέματα Προγραμματισμού Η/Υ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο2-Νο3

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

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

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

Προγραμματιστικές τεχνικές

ΚΑΤΑΣΚΕΥΑΣΤΕΣ ΑΝΤΙΓΡΑΦΗΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Η γλώσσα προγραμματισμού C

6. Εξαιρέσεις στη γλώσσα Java

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.

Εξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions

Ενδεικτική περιγραφή μαθήματος

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

Εξαιρέσεις (στη Java)

ΕΠΛ233 ΕΞΑΙΡΕΣΕΙΣ στη JAVA

Εργαστήριο #10 (Ε10) 1

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Στο πρόγραμμα θα πρέπει να γίνει υποχρεωτικά χρήση κλάσεων. Για την υλοποίηση του προγράμματος χρειάζονται 3 βασικές κλάσεις.

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

Δυναμική μνήμη με πίνακες και λίστες

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D.

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Χαρακτηριστικά αναδροµής

. Μεθοδολογία Προγραμματισμού. Εισαγωγή στη Java. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

Προγραμματισμός Υπολογιστών με C++

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

Transcript:

1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 9η: Ερωτήσεις

2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cp p_fall06.htm Θα τοποθετούνται οι διαφάνειες του επόµενου µαθήµατος Επικοινωνία: dimitris@skyblue.csd.auth.gr etousido@uth.gr

3 Ερώτηση 1 Υπάρχει λάθος στον κώδικα; ΕΝ µπορούµενα αρχικοποιήσουµεέναstatic µέλος µε τον τρόπο αυτό.

4 Ερώτηση 2 Υπάρχει λάθος στον κώδικα; ΕΝ µπορούµενα αρχικοποιήσουµεέναstatic µέλος µε τον τρόπο αυτό. Linker error.

5 Ερώτηση 3 Υπάρχει λάθος στον κώδικα; Εάν ΝΑΙ, τότε ποιο είναι; Εάν ΌΧΙ, τότε τι τυπώνει; ΕΝ υπάρχει λάθος. Τυπώνει 1, γιατί καλείται η geta() της κλάσης Base.

6 Ερώτηση 4 Υπάρχει λάθος στον κώδικα; ΕΝ υπάρχει λάθος. Ένας constructor µπορεί να πετάει µια exception.

7 Ερώτηση 5 Υπάρχει λάθος στον κώδικα; ΕΝ θα έπρεπε να σηµατοδοτείται ως λάθος. Έξαρτάται από τον compiler. Η VC++6 δεν το δέχεται. Μετά από καιρό ίσως υλοποιηθεί ευρύτατα.

8 Ερώτηση 6 Υπάρχει λάθος στον κώδικα; Abmormal program termination! Όταν ενεργοποιείται αυτό το throw, καταστρέφεται το αντικείµενο b και συνεπώς πετάγεται µια exception από τον destructor του. Throwing an exception while an exception is being handled results in "terminate" being called. εν είναι ασφαλές να πετάµε exceptions από destructors.

9 Ερώτηση 7 Υπάρχει λάθος στον κώδικα; Εάν ΝΑΙ, τότε ποιο είναι; Εάν ΌΧΙ, τότε τι τυπώνει; ΕΝ υπάρχει λάθος. Τυπώνει 345, γιατίκαλείταιηprint() της κλάσης Base παρόλο που είναι virtual συνάρτηση! Ερµηνεία: Μέχρι να τερµατιστεί ο constructor της Derived, δεν υπάρχει το αντικείµενο Derived

10 Ερώτηση 8 Υπάρχει λάθος στον κώδικα; Κατασκευάζεται το ΣΩΣΤΟ αντικείµενο. Ως ο constructor να ήταν virtual!!!!

11 Ερώτηση 9 Υπάρχει λάθος στον κώδικα; Εάν ΝΑΙ, τότε ποιο είναι; Εάν ΌΧΙ, τότε τι τυπώνει; ΕΝ υπάρχει λάθος. Τυπώνει Base, γιατί καλείται η print() της κλάσης Base παρόλο που είναι virtual συνάρτηση! Ερµηνεία: Όταν αρχίσει η καταστροφή του Deived (κλήση destructor), τότε παύει να είναι ένα αντικείµενο Derived

12 Ερώτηση 10 Υπάρχει λάθος στον κώδικα; Εάν ΝΑΙ, τότε ποιο είναι; Εάν ΌΧΙ, τότε τι τυπώνει; ΕΝ πιάνει την exception (µήνυµα Unhandled Exception ), επειδή, η SubExcept ΕΝ είναι BaseExcept. Θυµηθείτε ότι η private κληρονοµικότητα δεν πειγράφει µια is-a σχέση µεταξύ των κλάσεων.

13 Ερώτηση 11 Υπάρχει λάθος στον κώδικα; Εάν ΝΑΙ, τότε ποιο είναι; Εάν ΌΧΙ, τότε τι τυπώνει; ΕΝ υπάρχει λάθος. Τυπώνει Base, γιατίκαλείταιηprint() της κλάσης Base παρόλο που είναι virtual συνάρτηση(!), αφού η exception πιάνεται µετιµή.

14 Ερώτηση 12 Υπάρχει λάθος στον κώδικα; Εάν ΝΑΙ, τότε ποιο είναι; Εάν ΌΧΙ, τότε τι τυπώνει; ΕΝ υπάρχει λάθος. Τυπώνει Sub, γιατί καλείται η print() της κλάσης SubExcept, αφού η exception πιάνεται µε αναφορά.

15 Ερώτηση 13 Υπάρχει λάθος στον κώδικα; Γενικώς, εξαρτάται από τον compiler. Θα πρέπει να είναι runtime error, γιατί ο δείκτης bp πρέπει να είναι NULL, όταν µπαίνει στο catch block, αφού το αντικείµενο δεν κατασκευάστηκε.

16 Ερώτηση 14 Υπάρχει λάθος στον κώδικα; Ο VC++6 (όπως και οι περισσότεροι compilers) ΕΝ σηµατοδοτεί κάποιο λάθος. ΌΜΩΣ: α) Χρησιµοποιεί συνάρτηση κάποιου αντικειµένου πριν κατασκευαστεί αυτό το αντικείµενο, β) αναθέτει τιµή σε µέλος αντικειµένου, πριν κατασκευαστεί αυτό το αντικείµενο.