Στόχοι εργαστηρίου:
·
Εξάσκηση με κλάσεις
· Ολοκλήρωση
υλοποίησης της 1ης Σειράς Ασκήσεων
·
Πειραματισμοί με static, const, templates
Υποθέτουμε ότι έχετε ολοκληρώσει την υλοποίηση της άσκησης 2, ιδίως του constructor και των τελεστών. Αν όχι, ακολουθήστε
τις οδηγίες εργαστηρίου 02 και ολοκληρώστε την υλοποίηση της κλάσης. Σε περίπτωση
που "δεν σας βγαίνει", καταγράψτε τα βήματά σας με τρόπο που να μπορείτε
να τα αναπαράξετε στο εργαστήριο και συμβουλευτείτε
τους βοηθούς.
Κλάσεις: static, const, friend
- Ποιες
από τις public μεθόδους της κλάσης rational
μπορείτε να υλοποιήσετε χωρίς να τις δηλώσετε ως "φίλες" (friend);
Κάντε την υλοποίηση και δείτε τι πρέπει να αλλάξει στη συνάρτηση main();
(διαφάνειες 44-47 διάλεξη 2)
- Για
ποιο λόγο δηλώσαμε τη μέθοδο gcd
ως static; Τι
αλλάζει αν δεν δηλωθεί ως static;
(διαφάνειες 30-34, διάλεξη 2)
- Για
ποιο λόγο μολονότι έχουμε δηλωμένη μια μέθοδο ως static,
δεν έχουμε και static πεδία
στην κλάση rational;
- Τι
θα συμβεί αν οι παράμετροι της μεθόδου gcd
στην κλάση rational δηλωθούν
ως const;
Κλάσεις: templates
- Μελετήστε τις
διαφάνειες της 3ης διάλεξης και υλοποιήστε την Άσκηση 3 ανάλογα με το
παράδειγμα των διαφανειών 49-56 διάλεξης 3.
- Πάρτε
και υλοποιήστε μια απόφαση για τη συμπεριφορά της κλάσης σε περίπτωση "υπερχείλισης",
δηλαδή τη στιγμή του 11ου push() και
μετά, χωρίς να έχει εκτελεστεί κανένα pop()
Για το σπίτι
- Μεταφέρετε
το παράδειγμα των μιγαδικών αριθμών από τις διαφάνειες 43-47 της διάλεξης 3
και τρέξτε το.
- Υλοποιήστε
την πρόσθεση των μιγαδικών με υπερφόρτωση του τελεστή + αντί τις μεθόδου add.
- Δείτε
τη λειτουργία του stack με
ρητούς αριθμούς.
- Δείτε
τη λειτουργία του stack με
μιγαδικούς αριθμούς.