إعلان
دورة تطوير التطبيقات باستخدام لغة 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++ مفهوم الكونستركتور

    أهمية الكونستركتور في C++

    من أهم الأشياء التي عليك التفكير بها عند إنشاء كلاس جديد, هي تسهيل طريقة إنشاء كائنات من هذا الكلاس لاحقاً.
    من هنا جاءت فكرة الكونستركتور ( Constructor ) و الذي هو عبارة عن دالة, يتم إستدعائها أثناء إنشاء كائن من الكلاس لإعطاء قيم أولية للخصائص الموجودة فيه.

    أيّ كلاس تقوم بتعريفه, يملك كونستركتور إفتراضي حتى لو تقم بتعريفه له بنفسك و سبب ذلك أنه لا يمكن إنشاء كائن من كلاس إلا من خلال كونستركتور هذا الكلاس.
    لهذا إن لم تقم بتعريف كونستركتور للكلاس بنفسك, فكن على يقين أن مترجم لغة C++ سيقوم بإنشاء كونستركتور إفتراضي فارغ بدلاً عنك عندما تحاول إنشاء كائن من الكلاس.


    نقاط مهمة حول الكونستركتور

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


    في المثال التالي قمنا بتعريف كلاس إسمه Book و لم نقم بتعريف كونستركتور له.

    المثال الأول

    class Book {
    
    } 
    		

    سيقوم المترجم بإنشاء كونستركتور فارغ بشكل تلقائي عنا كالتالي.

    class Book {
    
    public:
    	// هذا كونستركتور إفتراضي أنشأه المترجم لأن الكلاس لا يحتوي على أي كونستركتور
    	Book() {
    		
    	}
    
    } 
    		

    طريقة استدعاء الكونستركتور في C++

    عند استدعاء كونستركتور موجود في كلاس, يجب أن تمرر قيمة لكل باراميتر موجود فيه من خلال وضع قوسين بعد إسم الكائن و تمرير القيم فيه.
    فيما ويلي وضعنا بعض الأمثلة التي توضح كيفية إستتدعاء كونستركتور من الكلاس.


    إذا كان إسم الكونستركتور هكذا Book() فإنك لا تحتاج فعل أي شيء حين تنشئ كائن من الكلاس حيث تنشئه كالتالي.

    المثال الأول

    Book book;
    		

    إذا كان إسم الكونستركتور هكذا Book(string title) فإنك مجبر على تمرير قيمة لكونستركتور الكائن كالتالي عند إنشاءه كالتالي.

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

    Book book("C++ for beginners");
    		

    إذا كان إسم الكونستركتور هكذا Book(string title, string author) فإنك مجبر على تمرير قيم لكونستركتور الكائن كالتالي عند إنشاءه كالتالي.

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

    Book book("C++ for beginners", "Mhamad Harmush");
    		

    إذا كان إسم الكلاس يحتوي على كونستركتور فارغ Book() و كونستركتور يأخذ قيمتين هكذا Book(string title, string author) فهنا تكون مخيّر على استدعاء الكونستركتور الذي تريده منهما عند إنشاء كائن من الكلاس.

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

    // يمكنك أن تنشئ الكائن من خلال استدعاء الكونستركتور الأول كالتالي
    Book book();
    
    // و يمكنك أن تنشئ الكائن من خلال استدعاء الكونستركتور الثاني كالتالي
    Book book("C++ for beginners", "Mhamad Harmush");
    		

    مثال شامل حول التعامل مع الكونستركتور في C++

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

    مثال

    main.cpp
    #include <iostream>
    
    using namespace std;
    
    // يحتوي على 4 متغيرات Book هنا قمنا بتعريف كلاس إسمه
    class Book {
    
    public:
    	// هنا قمنا بتعريف خصائص الكلاس
    	string title;
    	string author;
    	double price;
    	int numberOfPages;
    	
    	// هنا قمنا بتعريف كونستركتور يجب تمرير 4 قيم له عندما يتم إستدعاؤه
    	Book(string title, string author, double price, int numberOfPages)
    	{
    		// هنا قمنا بوضع القيم التي نمررها للكونستركتور بالترتيب في خصائص الكائن
    		this->title = title;
    		this->author = author;
    		this->price = price;
    		this->numberOfPages = numberOfPages;
    	}
    
    	// تقوم بطباعة كل قيم المتغيرات الموجودة فيه Book عند استدعاءها من أي كائن ننشئه من printInfo هنا قمنا بتعريف دالة إسمها
    	void printInfo()
    	{
    		cout << "Title: " << title << "\n";
    		cout << "Author: " << author << "\n";
    		cout << "Price: " << price << "$\n";
    		cout << "Number of pages: " << numberOfPages << "\n";
    	}
    };
    
    
    // main() هنا قمنا بتعريف الدالة
    int main()
    {
    	// مع تمرير القيم التي نريد وضعها فيه بشكل مباشر من خلال الكونستركتور book إسمه Book هنا قمنا بتعريف كائن من
        Book book("C++ for beginners", "Mhamad Harmush", 9.99, 420);
    
    	// حتى تقوم بطباعة القيم الموجودة فيه book من الكائن printInfo() هنا قمنا باستدعاء الدالة
    	book.printInfo();
    
        return 0;
    }
    		

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

    Title: C++ for beginners
    Author: Mhamad Harmush
    Price: 9.99$
    Number of pages: 420
    		
    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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