| مراجعة الأساسيات |
الدوال والمراجع وconst وClasses وتقسيم الملفات وأخطاء شائعة. |
توحيد الأساس قبل الموضوعات المتقدمة. |
| تصميم Classes |
Invariants وencapsulation وconstructors وdestructors وواجهات الاستخدام. |
كلاس يحمي حالته بدل كشف البيانات. |
| RAII وإدارة الموارد |
ربط الملفات والذاكرة والـlocks بعمر الكائن. |
إغلاق الموارد تلقائيًا في المسارات العادية والاستثنائية. |
| Copy Semantics |
Copy constructor وcopy assignment والنسخ العميق والسطحي. |
منع double delete والنسخ غير المقصود. |
| Move Semantics |
rvalue references وmove constructor وmove assignment وstd::move. |
نقل موارد ثقيلة بكفاءة مع حالة صالحة للكائن المنقول منه. |
| Rule of Zero/Five |
متى تترك إدارة الموارد للمكونات القياسية ومتى تعرف العمليات الخاصة. |
تصميم أقل كودًا يدويًا وأكثر قابلية للصيانة. |
| Smart Pointers |
unique_ptr وshared_ptr وweak_ptr ودوائر الملكية. |
اختيار نموذج ملكية مناسب بدل تحويل كل pointer إلى shared_ptr. |
| Inheritance وPolymorphism |
virtual functions وabstract interfaces وoverride وvirtual destructors. |
تعدد أشكال آمن وحدود واضحة للوراثة. |
| Templates |
Function templates وclass templates وtype deduction وقيود الاستخدام. |
مكونات عامة تعمل مع أنواع متعددة. |
| STL Containers |
vector وarray وdeque وlist وmap وunordered_map وset. |
اختيار الحاوية وفق الوصول والترتيب والتكلفة. |
| Iterators وAlgorithms |
sort وfind وtransform وaccumulate والربط بين الخوارزمية والحاوية. |
حلول أقصر وأكثر اختبارًا من الحلقات اليدوية المتكررة. |
| Lambdas وCallable Objects |
captures وfunction objects وتمرير السلوك للخوارزميات. |
تخصيص الخوارزميات من دون كود مشتت. |
| Exception Safety |
try وcatch وthrow وnoexcept وضمانات الاستثناء. |
حفظ invariants وعدم تسريب الموارد عند الفشل. |
| File I/O وSerialization |
streams والتحقق من الأخطاء وفصل التخزين عن منطق المجال. |
حفظ واسترجاع بيانات بصورة منظمة. |
| Debugging وSanitizers |
قراءة stack traces ومشاكل الذاكرة والسلوك غير المعرّف بحسب الأدوات المتاحة. |
تشخيص root cause بدل تعديل الكود عشوائيًا. |
| Build وTesting |
مقدمة في CMake وتنظيم targets واختبارات الوحدات بحسب المختبر. |
مشروع قابل للبناء وإعادة الاختبار. |
| ميزات حديثة مختارة |
مقدمة في ranges وconcepts أو ميزات C++20/23 بحسب دعم compiler. |
معرفة ما يمكن استخدامه فعليًا في البيئة الحالية. |
| المشروع النهائي |
تحليل المتطلبات وتصميم المجال والملكية والتخزين والاختبارات. |
تطبيق متكامل قابل للمراجعة والتطوير. |