إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    C++ النوع struct

    الكلمة struct في C++

    في الدروس السابقة, كنا نتعامل دائماً مع أنواع بيانات بسيطة فمثلاً كنا نقوم بتعريف متغير نوعه int و هذا المتغير كنا نضع فيه قيمة واحدة فقط.
    الأنواع البسيطة مفيدة جداً و سنتعامل معها دائماً و لكن في حالات معينة لا بد لنا من تعريف أنواع جديدة.

    كمثال بسيط, إذا كنا ننوي إرسال معلومات مجموعة من المنتجات و كل منتج يملك المعلومات التالية: إسم المنتج, تاريخ إنتاجه, سعره و مكوناته.
    هنا سيكون خيار ممتاز أن ننشئ نوع جديد يمثل المنتج, أي نوع فيه المعلومات الأساسية التي لا بد أن يمتلكها أي منتج.
    و عندها أي منتج جديد نريد تعريفه, نجعله نسخة منه.

    الكلمة struct تستخدم لتعريف نوع جديد و هذا النوع يمكنه أن يحتوي على مجموعة من القيم من أي نوع كانت بشكل مرتب و سهل التعامل معها.
    على الأغلب, ستجد النوع الجديد الذي يتم تعريفه بواسطة الكلمة struct يستخدم لهذا الغرض فقط.
    و لكن عليك معرفة أنه يمكنه أن يحتوي على أي شيء آخر, مثل دوال خاصة به و حتى struct آخر و سترى ذلك لاحقاً في الأمثلة.


    مصطلحات تقنية

    أي نوع جديد تعرّفه بواسطة الكلمة struct يقال له Structure.
    أي نسخة تنشئها من النوع الجديد الذي قمت بتعريفه يقال لها كائن ( Object ) منه.

    تعريف struct جديد في C++

    إذا كنت ستقوم بتعريف النوع الجديد بواسطة الكلمة struct فيجب أن تتبع الأسلوب التالي.

    struct struct_name {
        member_definition;
        member_definition;
        member_definition;
        ..
    } object_names;
    • struct_name:   مكانها نضع الإسم الذي سنعطيه للنوع الجديد.
    • member_definition:   هنا يمكنك تمرير إسم و نوع أي شيء تنوي جعل النوع الجديد يملكه.
    • object_names:   إذا أردت إنشاء كائن (نسخة) من النوع الجديد مباشرةً عند تعريفه, فأي إسم تضعه هنا سيتم إعتباره كائن منه.

    الآن عليك معرفة أنه يمكنك تعريف struct في أي مكان تريده, فمثلاً يمكنك تعريفه في ملف خاص, خارج الدالة main() و حتى بداخلها إن أردت.


    في المثال التالي, قمنا بتعريف نوع جديد إسمه Book يمثل المعلومات التي يمكن أن يتضمنها أي كتاب كعنوانه, إسم المؤلف, سعره و عدد صفحاته.

    مثال

    struct Book {
    	string title;
    	string author;
    	double price;
    	int numberOfPages;
    };
    		

    إنشاء كائن من struct في C++

    هناك عدة طرق يمكن اتباعها لإنشاء كائنات من struct و يمكنك اتباع أي طريقة تريد منها.


    في المثال التالي قمنا بإنشاء struct إسمه Book و من ثم إنشاء كائن منه.

    المثال الأول

    // يحتوي على 4 متغيرات Book إسمه struct هنا قمنا بتعريف
    struct Book {
    	string title;
    	string author;
    	double price;
    	int numberOfPages;
    };
    
    // book إسمه Book هنا قمنا بإنشاء كائن من
    struct Book book;
    		

    في المثال التالي قمنا بإنشاء struct إسمه Book و إنشاء كائن منه بشكل مباشر.
    إذاً, هذا المثال هو نفس المثال الأول بالضبط و لكن الكود مكتوب فيه بشكل مختصر فقط.

    المثال الثاني

    // book يحتوي على 4 متغيرات. و من ثم قمنا بإنشاء كائن منه إسمه Book إسمه struct هنا قمنا بتعريف
    struct Book {
    	string title;
    	string author;
    	double price;
    	int numberOfPages;
    } book;
    		

    في المثال التالي قمنا بإنشاء struct إسمه Book و من ثم إنشاء ثلاث كائنات منه.

    المثال الثالث

    // يحتوي على 4 متغيرات Book إسمه struct هنا قمنا بتعريف
    struct Book {
    	string title;
    	string author;
    	double price;
    	int numberOfPages;
    };
    
    // book3 و الثالث إسمه book2 الثاني إسمه ,book1 الأول إسمه ,Book هنا بإنشاء ثلاث كائنات من
    struct Book book1;
    struct Book book2;
    struct Book book3;
    		

    في المثال التالي قمنا بإنشاء struct إسمه Book و من ثم إنشاء ثلاث كائنات منه.
    إذاً, هذا المثال هو نفس المثال الثالث بالضبط و لكن الكود مكتوب فيه بشكل مختصر فقط.

    المثال الرابع

    // يحتوي على 4 متغيرات Book إسمه struct هنا قمنا بتعريف
    struct Book {
    	string title;
    	string author;
    	double price;
    	int numberOfPages;
    };
    
    // book3 و الثالث إسمه book2 الثاني إسمه ,book1 الأول إسمه ,Book هنا بإنشاء ثلاث كائنات من
    struct Book book1, book2, book3;
    		

    الوصول للأشياء الموجودة بداخل كائن من struct في C++

    للوصول لقيم المتغيرات الموجودة فيه, نستخدم العامل . أي النقطة العادية.


    مصطلحات تقنية

    العامل . يقال له Member Operator لأنه يسمح لنا بالوصول لأي شيء ( Member ) موجود في الكائن.


    في المثال التالي, قمنا بتعريف struct إسمه Book يمثل المعلومات التي يمكن أن يتضمنها أي كتاب كعنوانه, إسم المؤلف, سعره و عدد صفحاته.
    بعدها قمنا بإنشاء كائنين منه و من ثم إعطاء كل واحد قيم خاصة به.

    مثال

    main.cpp
    #include <iostream>
    
    using namespace std;
    
    // يحتوي على 4 متغيرات Book إسمه struct هنا قمنا بتعريف
    struct Book {
        string title;
        string author;
        double price;
        int numberOfPages;
    };
    
    int main()
    {
    	// book2 و الثاني إسمه book1 الأول إسمه ,Book هنا قمنا بتعريف كائنين من
        struct Book book1;
        struct Book book2;
    
    	// book1 هنا قمنا بإعطاء قيم لمتغيرات الكائن
        book1.title = "C++ for beginners";
        book1.author = "Mhamad Harmush";
        book1.price = 9.99;
        book1.numberOfPages = 420;
    
    	// book2 هنا قمنا بإعطاء قيم لمتغيرات الكائن
        book2.title = "Network 1";
        book2.author = "Nadine Masri";
        book2.price = 22.49;
        book2.numberOfPages = 310;
    
    	// book1 هنا قمنا بعرض قيم الكائن
        cout << "Book 1 ----------- \n";
        cout << "Title: " << book1.title << "\n";
        cout << "Author: " << book1.author << "\n";
        cout << "Price: " << book1.price << "$\n";
        cout << "Number of pages: " << book1.numberOfPages << "\n\n";
    
    	// book2 هنا قمنا بعرض قيم الكائن
        cout << "Book 2 ----------- \n";
        cout << "Title: " << book2.title << "\n";
        cout << "Author: " << book2.author << "\n";
        cout << "Price: " << book2.price << "$\n";
        cout << "Number of pages: " << book2.numberOfPages;
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Book 1 -----------
    Title: C++ for beginners
    Author: Mhamad Harmush
    Price: 9.99$
    Number of pages: 420
    
    Book 2 -----------
    Title: Network 1
    Author: Nadine Masri
    Price: 22.49$
    Number of pages: 310
    		

    أمثلة شاملة


    المثال الأول

    هنا وضعنا مثال حول كيفية تعريف دالة تأخذ باراميتر نوعه struct بالإضافة إلى كيفية إستدعاءها.

    شاهد المثال »



    المثال الثاني

    هنا وضعنا مثال حول كيفية تعريف دالة بداخل struct بالإضافة إلى كيفية إستدعاءها منه.

    شاهد المثال »



    المثال الثالث

    هنا وضعنا مثال حول كيفية تعريف دالة تأخذ باراميتر نوعه مؤشر لـ struct بالإضافة إلى كيفية إستدعاءها.

    شاهد المثال »



    المثال الرابع

    هنا وضعنا مثال حول كيفية وضع إسم مختصر للنوع struct بالإعتماد على الكلمة typedef.

    شاهد المثال »



    المثال الخامس

    هنا وضعنا مثال حول كيفية وضع إسم مختصر للنوع struct بالإعتماد على الكلمة using.

    شاهد المثال »

    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب