מחלקות, ירושה, פולימורפיזם — בארבע שפות
יסודות תכנות מונחה עצמים ב-C++, Python, Java ו-TypeScript — עם הדמיות זיכרון ו-dispatch צעד-אחר-צעד ובורר שפה רב-לשוני בכל שיעור.
יסודות OOP
מדוע OOP קיים, מהי class ומהו object, וכיצד ה-receiver (this/self) עובד בשפות שונות
Encapsulation
Access modifiers, class invariants, getters/setters/properties, ו-const correctness ב-C++
ירושה
יחסי IS-A, method overriding, abstract classes, בעיית היהלום, MRO ו-Liskov Substitution Principle
פולימורפיזם
Dispatch סטטי מול דינמי, virtual functions, vtables, pure virtual, virtual destructors, duck typing ו-templates
ניהול זיכרון
Stack מול heap, new/delete, RAII, smart pointers ב-C++, ו-GC ב-Python/Java/TypeScript
אופרטורים ופונקציות מיוחדות
Operator overloading ב-C++, dunder methods ב-Python, אופרטורי המרת type, ו-friend functions
Design Patterns
עקרונות SOLID, תבניות יצירתיות, מבניות והתנהגותיות — וה-anti-patterns שיש להימנע מהם
OOP מתקדם
Template instantiation (C++), metaclasses ב-Python, covariant return types, CRTP, והשוואות מערכות-types