هل C++ مجرد C مع كلاسات؟
الفكرة الأساسية
تشترك C++ مع C في أفكار وصياغات كثيرة، لكنها لغة مستقلة لها قواعد ومكتبة وأدوات خاصة. التعامل معها كتغيير لامتداد الملف فقط قد يثبت عادات لا تناسبها.
في جمال تك، C متطلب سابق لكورس C++. هذا ترتيب البرنامج التعليمي، وليس قاعدة تقول إن كل متعلم في العالم يجب أن يدرس C قبل C++.
احتفظ بالفكرة وراجع القاعدة
فهم المتغيرات والشروط والحلقات والدوال والذاكرة سيظل مفيدًا. لكن ليس كل برنامج C صحيح برنامجًا صحيحًا في C++، وليس كل أسلوب ممكن هو أوضح اختيار.
استخدم مترجم C++ واتبع معيار اللغة الذي يحدده كورسك. اقرأ رسائل المترجم في سياق اللغة المستخدمة بدل الاعتماد على تشابه المثال مع C.
تعرف على أدوات المكتبة القياسية
#include <iostream>
#include <string>
#include <vector>
int main() {
std::string language = "C++";
std::vector<std::string> topics = {
"strings", "vectors", "functions"
};
std::cout << language << ": "
<< topics.size() << " topics\n";
}
الناتج C++: 3 topics. تحتفظ string بالنص، وتحتفظ vector بمجموعة تستطيع معرفة حجمها. هذه الكائنات تدير الموارد المرتبطة بها، فلا يحتاج المثال إلى حجز وتحرير يدويين.
| احتياج | أداة تدرسها | مسؤولية تظل عليك |
|---|---|---|
| التعامل مع النص | std::string | معنى النص وطوله والمحتوى المقبول |
| مجموعة يمكن تغيير حجمها | std::vector | الفهارس الصحيحة ونوع العناصر |
| تنظيم أسماء المكتبة | نطاقات الأسماء | وضوح الاسم والواجهة |
هذه الأدوات تقلل بعض العمل اليدوي، لكنها لا تلغي فهم عمر الكائن وحدود الوصول والعمليات الصحيحة.
ميّز الملكية عن مجرد الاستخدام
قد تحتاج دالة إلى قراءة مجموعة بينما يمتلكها جزء آخر من البرنامج. المراجع وواجهات const والأنواع التي تدير الموارد تساعد على التعبير عن هذه العلاقة.
في البداية اسأل: من يمتلك القيمة؟ وكم يستمر وجودها؟ لا تضف new وdelete لمجرد أنك بدأت C++؛ تمارين كثيرة تستخدم كائنات وحاويات عادية بصورة أوضح.
مكان OOP في الطريق
استخدام C++ لا يعني أن كل حل يجب أن يحتوي فورًا على وراثة وكلاسات كثيرة. افهم اللغة وأدواتها أولًا، ثم ادرس تنظيم الحالة والسلوك والواجهات في OOP.
في مسار جمال تك يتطلب OOP لغة C++، وكذلك هياكل البيانات. أما الخوارزميات فتأتي بعد هياكل البيانات.
تمرين انتقال
خذ مسألة على مجموعة ثابتة حللتها في C، وأعد تمثيل بياناتها باستخدام vector في C++. اشرح كيف تعرف عدد العناصر، واترك أصل المسألة كما هو حتى تركز على الفرق بين الأدوات.
قارن الوضوح والصحة، لا عدد الأوامر المتقدمة. سجل فكرة تعرفها من قبل، وقاعدة تغيرت، وأداة جديدة فهمتها.
مراجع وتفاصيل الكورسات
المراجع التالية تساعد على متابعة التعلم. الأمثلة والتمارين في هذا المقال تعليمية، وتفاصيل الكورسات تُراجع من الكتالوج.