Μετάβαση στο περιεχόμενο
Ενότητα 3

Μνήμη & Πόροι

Το μοντέλο ιδιοκτησίας του Master C++ — από ακατέργαστους δείκτες έως έξυπνους δείκτες και σημασιολογία κίνησης — για να γράψετε κώδικα που δεν διαρρέει ποτέ.

Δείκτες & Αναφορές

  1. Δείκτες: Διευθύνσεις, Αποαναφορά και Αριθμητική

    Κατανοήστε τους δείκτες ως διευθύνσεις μνήμης, μάθετε τους τελεστές διεύθυνσης και παραπομπής, την αριθμητική του δείκτη μέσα σε πίνακες, την ορθότητα με τους δείκτες και πότε οι ακατέργαστοι δείκτες εξακολουθούν να είναι κατάλληλοι στο σύγχρονο C++.

  2. Αναφορές: Lvalue, Rvalue & Pitfalls

    Εξερευνήστε τις αναφορές lvalue και rvalue, κατανοήστε τις κατηγορίες τιμών C++, μάθετε κανόνες σύμπτυξης αναφοράς και αναφορές προώθησης και αποφύγετε τα κρεμαστά σφάλματα αναφοράς.

  3. Δυναμική μνήμη: νέα, διαγραφή και οι κίνδυνοι τους

    Μάθετε πώς λειτουργεί η δυναμική κατανομή με νέα και διαγράψτε, κατανοήστε τους κινδύνους διαρροών μνήμης, διπλής χρήσης και χρήσης μετά τη δωρεάν και ανακαλύψτε γιατί το σύγχρονο C++ δεν πρέπει να περιέχει μηδενικά ακατέργαστα νέα/διαγραφή.

Έξυπνοι δείκτες

  1. std::unique_ptr: Αποκλειστική ιδιοκτησία

    Μάθετε πώς το std::unique_ptr παρέχει αποκλειστική ιδιοκτησία μηδενικού γενικού κόστους, πώς να χρησιμοποιείτε το make_unique, προσαρμοσμένους διαγραφείς για πόρους C και εργοστασιακά μοτίβα λειτουργιών.

  2. shared_ptr, slow_ptr & γραφήματα ιδιοκτησίας

    Κατανοήστε την κοινόχρηστη ιδιοκτησία με καταμέτρηση αναφορών με το shared_ptr, διακόψτε τους κύκλους με το slow_ptr, μάθετε για τα μπλοκ ελέγχου και το ψευδώνυμο και μάθετε πότε το shared_ptr είναι η λάθος επιλογή.

Move Semantics & RAII

  1. Move Semantics & std::move

    Κατανοήστε το πρόβλημα που λύνει η σημασιολογία μετακίνησης, πώς το std::move είναι ένα cast (όχι μια κίνηση), εφαρμόστε τους κατασκευαστές κίνησης και την ανάθεση μετακίνησης και μάθετε γιατί το noexcept είναι κρίσιμο για την απόδοση του κοντέινερ.

  2. Perfect Forwarding & std::forward

    Κατανοήστε γιατί οι ονομασμένες αναφορές rvalue είναι lvalues, μάθετε το κανονικό μοτίβο προώθησης με το std::forward και δείτε πώς το emplace_back χρησιμοποιεί μεταβλητή προώθηση για τη δημιουργία αντικειμένων επιτόπου.

  3. RAII: The Fundamental Resource Pattern

    Learn RAII (Resource Acquisition Is Initialization) — the core C++ pattern for exception-safe resource management. Implement RAII wrappers, understand lock_guard and scoped_lock, and learn why RAII types must be move-only or ref-counted.

Προηγμένη μνήμη

  1. Διάταξη μνήμης, ευθυγράμμιση & αναπαράσταση αντικειμένων

    Κατανοήστε τις απαιτήσεις συμπλήρωσης και ευθυγράμμισης δομής, βελτιστοποιήστε την παραγγελία μελών για μέγεθος, μάθετε για τις γραμμές κρυφής μνήμης και την ψευδή κοινή χρήση και χρησιμοποιήστε λειτουργίες C++20 όπως [[no_unique_address]] για συμπαγείς διατάξεις.