ماهو Constructors في C++ Part 3

الكاتب: Mr.Aziz

تاريخ النشر: 2022-04-13 16:51:41

 مساء الخير الجميع

 

اليوم راح نتكلم عن دالة خاصة او Function خاص في الكلاس يسمى Constructors

 

ماهو Constructors مثل ماقلت هي دالة خاصة يتم استدعاءة بشكل تلقائي عند كتابة object

 

هو لايستخدم ألا public و ايضآ ممكن أن يكون بدون parameter او مع parameter لامشكلة

 

المهم كيف طريقة تشغيلة

 

لازم يكون بنفس أسم الكلاس بضبط

مثلآ اسم كلاس

 

class myCar{}

 

لازم يكون اسم الدالة myCar مثل اسم الكلاس بضبط.

 

تعالو نطبق مع بعض..

 

 

زي ماوضحت هنا أسم كلاس هو myclass تمام!

 

ثم كتبنا public لانه constructor لايقبل الا public

بعد كذا كتبنا فقط اسم كلاس مع قوسين زي ماهو موضح

 

myclass() {

}

بعد كذا نكتب داخل القوس مثلآ hello world

 

زي ماقلت أول مانكتب object يتم استدعاءه

 

نكتبobject  بهذي طريقة .

 

 

زي ماتلاحظون هنا فقط

كتبت اسم الكلاس ثم object أو المتغير بأسم myobj كا object

 

بعد تشغيل الكود طلع لنا الطباعة التي تم كتابتها في constructor  كاأفتراضي!!

 

طيب هل بأمكاننا نعمل زي كذا بس مع paramenter ؟ وكيف!

 

ايه تقدر كل الى عليك تعمل paramenter ولكن قبل لازم تحط متغيرات عشان يتم تمرير القيمة

 

اقصد مثل كذا

 

 

زي ماتلاحظون فوق

كتبت تحت public متغيرتين

واحد name و ثاني age تمام

 

ثم وضعت في parameter متغيرتين تبعها

 

وداخل constructor يكون هكذا

name = n

age = A

ليه؟

لانه في حال تم ادخال القيمة من main يتم تمريرها الى parameter ثم على المتغيرات نفسها التي متواجده في الكلاس الى هم name و age;

 

طيب كيف يتم كتابتها هل نترك object زي ماسوينا؟.

لا. نسوي لها parameter زي ماسوينا في construtor و هذا بيكون قيمة التي نضع فيها

 

هنا مثال

 

بيكون زي كذا بضبط ليه عشان المتغير name راح يتم تخزين فيه القيمة Aziz

و المتغير Age راح يتم تخزين فيه 20

طيب خلينا نسوي طباعة على المتغير name و age نشوف وش يصير!

 

 

زي ماتلاحظون هنا

كتبت اسم object هو myobj بعد كذا نقطة  وبعدها المتغير التي متواجد في الكلاس Name

مفترض يكون كذا

myobj.Name  هنا سيظهر القيمة التي تم حفظ فيها

 

 

في حال ماوضحت الفكرة او فكرة ماوصلت

 

هنا ترقيم

 

1- يتم ادخال القيمة في object

2- يتم استقبال القيمة من object الى المتغيرات التي متواجدة في parameters تبع constructor

3- هذي متغيرات راح ترسل من المتغيرات الى المتغيرات الى متواجدة في الكلاس هم name و age

4- يتم وصول القيم الى المتغيرات التي متواجدة بالكلاس هنا محطة الاخيرة.

عشان كذا قدرنا نطبع هذي متغيرات بدون اي مشاكل.

 

قبل الاخير

 

بامكانكم كتابة constructor في خارج الكلاس مثل ماكتبنا بالدرس السابق 

 

تكون هذي طريقة

 

 

زي ماهو واضح هنا

 

كتبنا أول شي تعريف الدالة في الكلاس تمام

عشان تصبح تابع الكلاس

 

ثم نروح للخارج الكلاس

ونكتب بهذي طريقة اسم الكلاس ثم اسم constructor

 

myclass::myclass()

 

بهذي طريقة

 

نفس الدرس السابق تمامآ ولكن هالمره هو constructor

 

 

وكذا انتهينا

أشوفكم بالدرس القادم