Αντικειμενοστραφής Προγραμματισμός (OOP=Object Oriented Programming) με χρήση της C++
Πανεπιστήμιο Ιωαννίνων - Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Γκόγκος Χρήστος - Άρτα@2024
- e-course μαθήματος: http://ecourse.uoi.gr/course/view.php?id=1944
- Θεωρία κάθε Τρίτη 13:00-15:00 στο ΑΜΦ-Β και κάθε Πέμπτη 12:00-14:00 στο ΑΜΦ-Β.
- Εργαστήριο 2 ώρες κάθε δεύτερη εβδομάδα σύμφωνα με το πρόγραμμα της κάθε ομάδας.
Επιλογές Συγγραμμάτων (ΕΥΔΟΞΟΣ):
- Βιβλίο [122077282]: C++: Από τη Θεωρία στην Εφαρμογή, Γ. Τσελίκης Λεπτομέρειες
- Βιβλίο [77112469]: Προγραμματισμός με τη C++, 2η Έκδοση, Stroustrup Bjarne Λεπτομέρειες
- Βιβλίο [122078440]: Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++, BJARNE STROUSTRUP Λεπτομέρειες
- Βιβλίο [50659221]: C++ Προγραμματισμός, 9η Εκδ., Paul J. Deitel, Harvey M. Deitel Λεπτομέρειες
Τελευταία ενημέρωση: 20/11/2024
Ύλη προόδου - ημερομηνία προόδου 3/12/2024 13:00-15:00
C++ reference card μπορείτε να το έχετε εκτυπωμένο μαζί σας στις εξετάσεις προόδου και τελικές.
- Θέματα προετοιμασίας Α (για την πρόοδο)
- Θέματα προετοιμασίας Β (για την πρόοδο)
- Θέματα προετοιμασίας Γ (για την πρόοδο)
ΕΡΓΑΣΙΕΣ
ΘΕΩΡΙΑ
- Παρουσίαση 1 - Εισαγωγή
- Παρουσίαση 2 - Επίπεδα προστασίας, κατασκευαστές
- Παρουσίαση 3 - Περιβάλλον Unix και μεταγλώττιση
- Παρουσίαση 4 - friend, κατασκευαστές μετατροπής, destructors
- Παρουσίαση 5 - const
- Παρουσίαση 6 - Υπερφόρτωση τελεστών
- Παρουσίαση 7 - Σύνθεση
- Παρουσίαση 8 - Πίνακες αντικειμένων
- Παρουσίαση 9 - Δείκτες
- Παρουσίαση 10 - Δυναμική δέσμευση μνήμης
- Παρουσίαση 11 - Αναδρομή
- Παρουσίαση 12 - Κατασκευαστής αντιγραφής (copy constructor) και αντιγραφή μέσω τελεστή ανάθεσης (assignment operator)
- Παρουσίαση 13 - Λεκτικά, υπερφόρτωση του τελεστή [] και του τελεστή &
- Παρουσίαση 14 - Κληρονομικότητα
- Παρουσίαση 15 - Πολυμορφισμός και ιδεατές συναρτήσεις
- Παρουσίαση 16 - Πρότυπα
- Παρουσίαση 17 - Συνδεδεμένες λίστες
- Παρουσίαση 18 - Εξαιρέσεις
- Παρουσίαση 19 - Χρήσιμες έννοιες στη C++ και μερικές ακόμα δομές δεδομένων
Οι παραπάνω παρουσιάσεις αποτελούν προσαρμογή υλικού που έχει αναπτυχθεί από τους Robert Myers, Matthew Small, Xin Yuan στα πλαίσια μαθημάτων για τον αντικειμενοστραφή προγραμματισμό με τη C++ COP3330/CGS5409: Object-oriented Programming in C++.
- Παρουσίαση 20 - Δείκτες στη C και στη C++
- Παρουσίαση 21 - STL
- Παρουσίαση 22 - C++ vs Java
- Παρουσίαση 23 - UML - Διαγράμματα κλάσεων
ΕΡΓΑΣΤΗΡΙΟ
Online μαθήματα για τη C++
- C++ institute - C++ essentials 1 by OpenEDG
- C++ institute - C++ essentials 2 by OpenEDG
- CS107
- Modern C++ Programming - C++03 / C++11 / C++14 / C++17 / C++20 / C++23 / C++26 by Federico Busato
Tutorials για τη C++
- learncpp
- yet another insignificant… programming notes
- wikibooks - C++ programming
- cplusplus.com tutorials
- Learn C++ in Y minutes
- Educative.io - Learn C++ from scratch
- Sololearn: C++
- Udemy: C++ Tutorial for Complete Beginners
Βίντεο για τη C++
Σύνοψη των C++, STL, UML διαγραμμάτων κλάσεων
Τεκμηρίωση της C++ και της STL
- https://devdocs.io/ και με δυνατότητα για offline χρήση
- zeal για offline χρήση
- https://en.cppreference.com/w/
- https://www.cplusplus.com/reference/
C++ Style Guides
- Google’s C++ Style Guide με εγκατάσταση του cpplint, μπορεί να γίνεται έλεγχος αυτόματος έλεγχος της συμμόρφωσης του κώδικα με τον οδηγό στυλ της Google, μέσα από το VSCode ή από τη γραμμή εντολών.
Παράδειγματα
- FizzBuzz παράδειγμα με τη βιβλιοθήκη Catch2
Βιβλία
- Καράλη, Ι. (2023). Αντικειμενοστραφής Προγραμματισμός: Έννοιες και Τεχνικές [Προπτυχιακό εγχειρίδιο]. Κάλλιπος, Ανοικτές Ακαδημαϊκές Εκδόσεις.
- Αλεβίζος, Θ. (2014). Προγραμματισμός με τη γλώσσα C++ [Προπτυχιακό εγχειρίδιο]. Κάλλιπος, Ανοικτές Ακαδημαϊκές Εκδόσεις.
- Εισαγωγή στη γλώσσα προγραμματισμού C++14, Σταμάτης Σταματιάδης
Διάφορα
- C++ insights by Andreas Fertig
- Compiler explorer by Matt Godbolt
- Online C++ compiler and visual debugger - pythontutor
- Debugging
- CMAKE (An open-source, cross-platform family of tools designed to build, test and package software) https://cmake.org/