C++النوع struct
- الكلمة struct في C++
- تعريف struct جديد في C++
- إنشاء كائن من struct في C++
- الوصول للأشياء الموجودة بداخل كائن من struct في C++
- أمثلة شاملة
الكلمة struct في C++
في الدروس السابقة, كنا نتعامل دائماً مع أنواع بيانات بسيطة فمثلاً كنا نقوم بتعريف متغير نوعه int و هذا المتغير كنا نضع فيه قيمة واحدة فقط.
الأنواع البسيطة مفيدة جداً و سنتعامل معها دائماً و لكن في حالات معينة لا بد لنا من تعريف أنواع جديدة.
كمثال بسيط, إذا كنا ننوي إرسال معلومات مجموعة من المنتجات و كل منتج يملك المعلومات التالية: إسم المنتج, تاريخ إنتاجه, سعره و مكوناته.
هنا سيكون خيار ممتاز أن ننشئ نوع جديد يمثل المنتج, أي نوع فيه المعلومات الأساسية التي لا بد أن يمتلكها أي منتج.
و عندها أي منتج جديد نريد تعريفه, نجعله نسخة منه.
الكلمة struct تستخدم لتعريف نوع جديد و هذا النوع يمكنه أن يحتوي على مجموعة من القيم من أي نوع كانت بشكل مرتب و سهل التعامل معها.
على الأغلب, ستجد النوع الجديد الذي يتم تعريفه بواسطة الكلمة struct يستخدم لهذا الغرض فقط.
و لكن عليك معرفة أنه يمكنه أن يحتوي على أي شيء آخر, مثل دوال خاصة به و حتى struct آخر و سترى ذلك لاحقاً في الأمثلة.
مصطلحات تقنية
أي نوع جديد تعرّفه بواسطة الكلمة struct يقال له Structure.
أي نسخة تنشئها من النوع الجديد الذي قمت بتعريفه يقال لها كائن ( Object ) منه.
تعريف struct جديد في C++
إذا كنت ستقوم بتعريف النوع الجديد بواسطة الكلمة struct فيجب أن تتبع الأسلوب التالي.
member_definition;
member_definition;
member_definition;
..
} object_names;
- struct_name: مكانها نضع الإسم الذي سنعطيه للنوع الجديد.
- member_definition: هنا يمكنك تمرير إسم و نوع أي شيء تنوي جعل النوع الجديد يملكه.
- object_names: إذا أردت إنشاء كائن (نسخة) من النوع الجديد مباشرةً عند تعريفه, فأي إسم تضعه هنا سيتم إعتباره كائن منه.
الآن عليك معرفة أنه يمكنك تعريف struct في أي مكان تريده, فمثلاً يمكنك تعريفه في ملف خاص, خارج الدالة main()
و حتى بداخلها إن أردت.
في المثال التالي, قمنا بتعريف نوع جديد إسمه Book
يمثل المعلومات التي يمكن أن يتضمنها أي كتاب كعنوانه, إسم المؤلف, سعره و عدد صفحاته.
مثال
إنشاء كائن من struct في C++
هناك عدة طرق يمكن اتباعها لإنشاء كائنات من struct و يمكنك اتباع أي طريقة تريد منها.
في المثال التالي قمنا بإنشاء struct إسمه Book
و من ثم إنشاء كائن منه.
المثال الأول
في المثال التالي قمنا بإنشاء struct إسمه Book
و إنشاء كائن منه بشكل مباشر.
إذاً, هذا المثال هو نفس المثال الأول بالضبط و لكن الكود مكتوب فيه بشكل مختصر فقط.
المثال الثاني
في المثال التالي قمنا بإنشاء struct إسمه Book
و من ثم إنشاء ثلاث كائنات منه.
المثال الثالث
في المثال التالي قمنا بإنشاء struct إسمه Book
و من ثم إنشاء ثلاث كائنات منه.
إذاً, هذا المثال هو نفس المثال الثالث بالضبط و لكن الكود مكتوب فيه بشكل مختصر فقط.
المثال الرابع
الوصول للأشياء الموجودة بداخل كائن من struct في C++
للوصول لقيم المتغيرات الموجودة فيه, نستخدم العامل .
أي النقطة العادية.
مصطلحات تقنية
العامل .
يقال له Member Operator لأنه يسمح لنا بالوصول لأي شيء ( Member ) موجود في الكائن.
في المثال التالي, قمنا بتعريف struct إسمه Book
يمثل المعلومات التي يمكن أن يتضمنها أي كتاب كعنوانه, إسم المؤلف, سعره و عدد صفحاته.
بعدها قمنا بإنشاء كائنين منه و من ثم إعطاء كل واحد قيم خاصة به.
مثال
سنحصل على النتيجة التالية عند التشغيل.
أمثلة شاملة
المثال الأول
هنا وضعنا مثال حول كيفية تعريف دالة تأخذ باراميتر نوعه struct بالإضافة إلى كيفية إستدعاءها.
المثال الثاني
هنا وضعنا مثال حول كيفية تعريف دالة بداخل struct بالإضافة إلى كيفية إستدعاءها منه.
المثال الثالث
هنا وضعنا مثال حول كيفية تعريف دالة تأخذ باراميتر نوعه مؤشر لـ struct بالإضافة إلى كيفية إستدعاءها.
المثال الرابع
هنا وضعنا مثال حول كيفية وضع إسم مختصر للنوع struct بالإعتماد على الكلمة typedef.
المثال الخامس
هنا وضعنا مثال حول كيفية وضع إسم مختصر للنوع struct بالإعتماد على الكلمة using.