الهياكل (struct)

في لغة C++ تسمح لك البنية (struct) بتجميع عدة أجزاء من البيانات تحت اسم واحد. يمكنك التفكير فيها كنوع بيانات مخصّص تقوم أنت بتصميمه بنفسك.

ما هي البنية struct؟

البنية struct تجمع مجموعة من المتغيرات ذات العلاقة (تسمّى أعضاء أو members) وقد تكون من أنواع مختلفة داخل نفس الكيان.

الصيغة

struct TypeName {
    member_type1 member_name1;
    member_type2 member_name2;
    // ...
};
  • TypeName → اسم نوع البيانات الجديد الذي تعرّفه.
  • داخل الأقواس المعقوفة { } → الأعضاء (members)، وهي المتغيرات التي تنتمي لهذا النوع.

مثال: بنية product

#include <iostream>
using namespace std;

struct product {
    int weight;     // in grams
    double price;   // in riyals
};

int main() {
    product apple;
    product banana, melon;

    apple.weight = 150;
    apple.price  = 1.99;

    banana.weight = 120;
    banana.price  = 0.99;

    cout << "Apple: "  << apple.weight  << " g, " << apple.price << " SAR" << endl;
    cout << "Banana: " << banana.weight << " g, " << banana.price << " SAR" << endl;
}

في هذا المثال:

  • عرّفنا نوعًا جديدًا اسمه product.

  • هذا النوع يحتوي عضوين:

    • weight من نوع int يمثّل الوزن بالجرام.
    • price من نوع double يمثّل السعر بالريال.

بعدها أنشأنا متغيّرات (كائنات) من هذا النوع: apple، banana، وmelon، وأعطينا كلًا منها قيمًا خاصة به.

الوصول إلى الأعضاء

نستخدم عامل النقطة .:

  • apple.weight → عضو من نوع int
  • apple.price → عضو من نوع double

يمكنك القراءة من هذه الأعضاء أو التعديل عليها مثل أي متغير عادي تمامًا.

تعريف كائنات مباشرة بعد تعريف البنية

يمكنك أيضًا تعريف المتغيرات في نهاية تعريف البنية مباشرة:

struct product {
    int weight;
    double price;
} apple, banana, melon;

هنا:

  • product هو اسم النوع (البنية).
  • apple، banana، melon هي متغيرات (كائنات) من هذا النوع.