ΥΛΗ ΤΕΛΙΚΗΣ ΕΞΕΤΑΣΗΣ (ΑΝΤΙΚΕΙΜΕΝΟΣΤΡAΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ)
ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ ΠΟΥ ΘΑ ΧΡΕΙΑΣΤΟΥΝ ΣΤΙΣ ΕΞΕΤΑΣΕΙΣ
- Χειρισμός δεικτών, δέσμευσης/αποδέσμευσης μνήμης
- Δημιουργία κλάσεων και αντικειμένων
- Κατανόηση σημασίας προσδιοριστών private, public και protected
- Ορισμός κατασκευαστών και καταστροφέων
- Υπερφόρτωση τελεστών (π.χ. του τελεστή <)
- Κληρονομικότητα - πολυμορφικές ιεραρχίες (virtual) - παράκαμψη (override)
- Προγραμματισμός με πρότυπα (template programming)
- STL περιέκτες (π.χ. std::vector)
- STL αλγόριθμοι (π.χ. std::sort)
- STL επαναλήπτες (π.χ. forward iterator)
- Ανάγνωση απλών διαγραμμάτων κλάσεων UML και μετατροπή σε C++ κώδικα
Βιβλίο “Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++, 4η ΑΜΕΡΙΚΑΝΙΚΗ ΕΚΔΟΣΗ, BJARNE STROUSTRUP”
- ΚΕΦΑΛΑΙΟ 2: Περιήγηση στη C++: Τα βασικά
- ΚΕΦΑΛΑΙΟ 3: Περιήγηση στη C++: Μηχανισμοί αφαίρεσης
- ΚΕΦΑΛΑΙΟ 4: Περιήγηση στη C++: Περιέκτες και αλγόριθμοι
- ΚΕΦΑΛΑΙΟ 16: Κλάσεις
- ΚΕΦΑΛΑΙΟ 17: Κατασκευή, εκκαθάριση, αντιγραφή και μετακίνηση
- ΚΕΦΑΛΑΙΟ 18: Υπερφόρτωση τελεστών
- ΚΕΦΑΛΑΙΟ 20: Παράγωγες κλάσεις
- ΚΕΦΑΛΑΙΟ 21: Ιεραρχίες κλάσεων
- ΚΕΦΑΛΑΙΟ 23: Πρότυπα
- ΚΕΦΑΛΑΙΟ 30: Επισκόπηση της καθιερωμένης βιβλιοθήκης
- ΚΕΦΑΛΑΙΟ 31: Περιέκτες STL
- ΚΕΦΑΛΑΙΟ 32: Αλγόριθμοι STL
- ΚΕΦΑΛΑΙΟ 33: Επαναλήπτες STL
ΔΙΑΦΑΝΕΙΕΣ
ANTIKEIMENA ΤΟΥ ΜΑΘΗΜΑΤΟΣ
C
- δείκτες (dereference=αποαναφορά, διευθύνσεις)
- δέσμευση, αποδέσμευση μνήμης (malloc, free)
- στατικοί, δυναμικοί πίνακες
- δισδιάστατοι πίνακες
- enums
- casting
- inline συναρτήσεις
- Χωριστή μεταγλώττιση
C++
- δέσμευση, αποδέσμευση μνήμης (new, delete)
- χώροι ονομάτων (namespaces)
- enum classes
- αναφορές (references)
- πέρασμα με τιμή, πέρασμα με αναφορά
- χρήση του const
- ορισμός κλάσεων (private/public members)
- κατασκευαστές (προκαθορισμένος, υπερφόρτωση, default παράμετροι)
- κατασκευαστής αντιγραφής (shallow copy/deep copy)
- τελεστής ανάθεσης (assignment operator)
- καταστροφείς
- στατικά μέλη κλάσεων
- φίλες συναρτήσεις
- φίλες κλάσεις
- υπερφόρτωση τελεστών (+, <, ==, « , »)
- εμφωλιασμοί κλάσεων (nested classes)
- μετατροπή αντικειμένου σε λεκτικό
- κληρονομικότητα (βασικές κλάσεις, παραγόμενες κλάσεις, το keyword protected)
- κληρονομικότητα (overload, override)
- κληρονομικότητα (τα keywords final, override)
- upcasting, downcasting
- πολυμορφικές ιεραρχίες (virtual συναρτήσεις)
- virtual destructors
- αφηρημένες κλάσεις (pure virtual functions)
- πολλαπλή κληρονομικότητα (διαχείριση συγκρούσεων)
- virtual πολλαπλή κληρονομικότητα
- templates (εφαρμογή σε συναρτήσεις, εφαρμογή σε δομές/κλάσεις)
- Εξαιρέσεις
- Λάμδα συναρτήσεις
- Δημιουργία τυχαίων τιμών
- Χρονομέτρηση χρόνου εκτέλεσης κώδικα
- Χειρισμός αρχείων κειμένου και δυαδικών αρχείων
STL
- Περιέκτες (container)
- std::vector, std::array, std::list
- std::set, std::unordered_set, std::map, std::unordered_map
- Επαναλήπτες (iterators)
- random iterator, forward iterator
- Αλγόριθμοι (algorithms)
- std::sort,std::find, std::copy, std::count_if, std::accumulate, std::lower_bound
- Βοηθήματα (utilities)
- ζεύγη (std::pair)
- πλειάδες (std::tuple)
OO Design
- IS-A (κληρονομικότητα)
- HAS-A (composition=σύνθεση ή aggregation=συνάθροιση)
- UML
- Διαγράμματα κλάσεων
- Διάγραμμα κλάσης μεμονωμένης κλάσης
- Συσχετίσεις μιας κατεύθυνσης (one way associations)
- Συσχετίσεις δύο κατευθύνσεων (two way associations)
- Συνάθροιση (aggregation)
- Σύνθεση (composition)
- Κληρονομικότητα (inheritance)