1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 6η: Ερωτήσεις
2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα τοποθετούνται οι διαφάνειες του επόµενου µαθήµατος Επικοινωνία: dimitris@skyblue.csd.auth.gr
3 Ερώτηση 1 εν υπάρχει default constructor της κλάσης Class1.
4 Ερώτηση 2 Μη έγκυρη κλήση για κατασκευή ανώνυµου αντικειµένου της κλάσης Class1.
5 Ερώτηση 3 Κλήση non-const µεθόδου από const µέθοδο.
6 Ερώτηση 4 Static συνάρτηση δεν µπορεί να προσπελάσει non-static µέλος.
7 Ερώτηση 5 ΕΝ υπάρχει λάθος. Είναι friend και έτσι µπορεί να προσπελάζει τα ιδιωτικά δεδοµένα της κλάσης.
8 Ερώτηση 6 Ο τελεστής + έχει οριστεί έτσι, ώστε στην ουσία δέχεται 3 τελεστέους. εν επιτρέπεται αυτό.
9 Ερώτηση 7 ΕΝ υπάρχει λάθος.
10 Ερώτηση 8 Μετά την ανάθεση οι δείκτες p των δυο αντικειµένων δίχνουν στο ίδιο σηµείο. Αφού διαγράφουµε τον obj1.p, τότε ο obj2.p είναι έναν dangling pointer και είναι σφάλµα η προσπέλαση του obj2.p[1].
11 Ερώτηση 9 Ο τελεστής Κλήσης Συνάρτησης είναι ιδιωτικό δεδοµένο.
12 Ερώτηση 10 Πρέπει το ένα τουλάχιστον όρισµα του τελεστή να είναι κάποια κλάση δική µας
13 Ερώτηση 11 ΕΝ µπορούµε να έχουµε default ορίσµατα στον τελεστή +
14 Ερώτηση 12 Είναι void ο τελεστής και άρα δεν µπορεί να εφαρµοστεί ο εξωτερικός τελεστής ++
15 Ερώτηση 13 Τι ακριβώς κάνει; Η εξωτερική αύξηση δεν εφαρµόζεται πάνω στο αντικείµενο cl1, αλλά σε κάποιο ανώνυµο Ορίζει προθεµατικό και µεταθεµατικό τελεστή ++.
16 Ερώτηση 14 Απαιτείται ο default constructor ο οποίος δεν έχει οριστεί.
17 Ερώτηση 15 ΕΝ υπάρχει λάθος.
18 Ερώτηση 16 Το όρισµα literal 3 (const int) ΕΝ µπορεί να µπει στη θέση του Class1&.
19 Ερώτηση 17 α) Τι θα γίνει εάν το όρισµα είναι το ίδιο το αντικείµενο? β) Τι θα γίνει εάν το αντικείµενο-όρισµα είναι κατασκευασµένο µε τον default constructor και άρα ο ptr είναι NULL?
20 Ερώτηση 18 α) Όχι static µεταβλητές σε τοπικές κλάσεις (π.χ., sk). β) Η τοπική κλάση ΕΝ γνωρίζει τις µεταβλητές τις περικλείουσας συνάρτησης (π.χ., z), αλλά γνωρίζει τις global (π.χ., x). γ) Οι τοπικές κλάσεις δεν είναι γνωστές εκτός της περικλείουσας συνάρτησης, (π.χ., στην main)
21 Ερώτηση 19 Οι συναρτήσεις-µέλη των τοπικών κλάσεων πρέπει να ορίζονται µέσα στην κλάση (inline) και όχι να ορίζονται µέσα στην περικλείουσα συνάρτησης, γιατί τότε έχουµε ορισµό συνάρτησης µέσα σε συνάρτηση το οποίο δεν επιτρέπεται στη C/C++
22 Ερώτηση 20 εν µπορούµε να ορίσουµε νέους τελεστές στη C++. Μόνο να κάνουµε overload τους ήδη υπάρχοντες.