شرح C++

الهياكل والتعدادات

الهياكل (struct)

تجمّع عدّة متغيّرات (قد تكون من أنواع مختلفة) تحت اسم واحد:

struct Person {
    string name;
    int age;
    double height;
};

int main() {
    Person p;
    p.name = "سارة";
    p.age = 28;
    p.height = 1.65;

    cout << p.name << " - " << p.age;
}

التهيئة المباشرة

Person p = {"أحمد", 30, 1.80};
cout << p.name;   // أحمد

مصفوفة من الهياكل

struct Product {
    string name;
    double price;
};

Product items[2] = {
    {"كتاب", 45.0},
    {"قلم", 5.5}
};

for (Product item : items) {
    cout << item.name << ": " << item.price << endl;
}

struct مقابل class

في C++، struct وclass متشابهان تقريبًا — الفرق الوحيد أن أعضاء struct افتراضيًّا public وأعضاء class افتراضيًّا private. عُرفًا نستخدم struct لتجميع بيانات بسيط وclass للكائنات ذات السلوك.

التعدادات (enum)

تسمّي مجموعة ثوابت مترابطة بدل الأرقام السحرية:

enum Direction { UP, DOWN, LEFT, RIGHT };

Direction move = UP;
cout << move;    // 0 (تبدأ من الصفر تلقائيًّا)

قيم مخصّصة:

enum Status { ACTIVE = 1, INACTIVE = 0, PENDING = 2 };

enum class (الأكثر أمانًا)

النسخة الحديثة الموصى بها — تتجنّب تضارب الأسماء:

enum class Color { RED, GREEN, BLUE };

Color c = Color::GREEN;

أخطاء شائعة

  • نسيان الفاصلة المنقوطة ; بعد قوس إغلاق struct.
  • الاعتماد على القيم الرقمية الضمنية لـ enum ثم تغيّر الترتيب.

🎯 التالي: الدوال المتقدّمة (التحميل الزائد والاستدعاء الذاتي).