Στόχοι εργαστηρίου:
- Εξοικείωση με προχωρημένα ζητήματα των κλάσεων και αφηρημένους τύπους δεδομένων
- Ολοκλήρωση υλοποίησης 2ης Σειράς Ασκήσεων
- Υλοποίηση 3ης σειράς ασκήσεων
ΑΤΔ πίνακα "σκακιέρα"
- Συμβουλευτείτε τις διαφάνειες της διάλεξης 5 και απαντήστε για ποιο λόγο χρειαζόμαστε τη βοηθητική κλάση Row, ποια λειτουργικότητα εξυπηρετεί;
- Στον μονοδιάστατο πίνακα της διάλεξης δεν χρειαστήκαμε συνάρτηση select, γιατί την εισάγουμε στον διδιάστατο πίνακα;
Πολυώνυμα με λίστες
- Στο μάθημα έχουμε μιλήσει για φίλες συναρτήσεις. Παρατηρήστε ότι στον ορισμό της κλάσης του πολυωνύμου υπάρχει η βοηθητική κλάση Term που δηλώνει την κλάση Polynomial ως φίλη. Γιατί το κάνουμε αυτό;
- Γιατί ο operator "=" επιστρέφει τιμή; Επιπλέον, γιατί επιστρέφει reference σε Polynomial; Τι θα συνέβαινε αν δεν επέστρεφε κάτι ή αν επέστρεφε απλά Polynomial;
- Γιατί οι operators +, * και << δηλώνονται ως φίλες συναρτήσεις; Θα μπορούσε να γίνει και διαφορετικά;
- Προαιρετικά: Σχεδιάστε (ή ακόμα καλύτερα υλοποιήστε) τη συγκεκριμένη άσκηση με τη βοήθεια της STL (αλλάζοντας προφανώς τη δήλωση της κλάσης που σας έχει δοθεί)