الدرس 0: لماذا C++ من الأساس؟
في دروس C السابقة رأيت كيف تمنح مثل هذه اللغة سيطرة كاملة على الذاكرة والعتاد — لكن بثمن: أي قاعدة شيفرة كبيرة تصبح جهدًا يدويًا لصيانتها، بلا أصناف، بلا قوالب، بلا أدوات لتنظيم كل ذلك. إذًا لماذا نضيف لغة أخرى، C++، تبدو أكثر تعقيدًا؟ لأن هناك مجالات — محرّكات ألعاب يجب أن ترسم إطارًا جديدًا كل 16
C++ مثل C مع عُدّة أدوات للتنظيم: نفس السيطرة الدقيقة على الذاكرة والتوقيت، إضافة إلى طريقة لبناء أنظمة كبيرة دون أن تتحوّل الشيفرة إلى فوضى.
- جمع المهملات (garbage collection، GC)
- آلية تلقائية تُحرّر الذاكرة التي لم تعد مستخدمة، لكنها قد توقف البرنامج لمدة غير متوقّعة لتنفيذ التنظيف.
- قيد الزمن الحقيقي
- اشتراط أن تنتهي عملية ما ضمن نافذة زمنية ثابتة ومعروفة مسبقًا — مثلًا، رسم إطار كل 16 ميلي ثانية للحفاظ على 60 إطارًا في الثانية.
- التحكّم اليدوي في الذاكرة
- القدرة على تحديد متى تُخصَّص الذاكرة ومتى تُحرَّر بدقة، دون الاعتماد على عملية خلفية غير متوقّعة.
- التجريد على نطاق واسع
- أدوات لتنظيم الشيفرة الكبيرة — الأصناف والقوالب ومكتبة STL — تتيح لك بناء أنظمة معقّدة دون فقدان السيطرة على الأداء.