++C

الدوال (functions) في C++

الكاتب: Mr.Aziz

تاريخ النشر: 2023-03-07 07:17:19

اهلآ وسهلآ

 

في هذا الدرس سوف نتكلم عن الدوال أو بما يسمى Functions و في اللغة جافا يسمى Method و هي نفس الوظيفة بضبط.

 

ماهي الدوال؟ هي مجموعة من أكواد مجمعة في مكان واحد فقط. 

على سبيل المثال: أكواد خاصة في أختيارات يكون مجمعة في مكان واحد ويسمى menu.

 

هذي أفضل طريقة في حال أن تريد تعمل برنامج بأكواد نظيفة لك و للمستقبل. لو تريد تراجع هذا الكود بعد سنوات ستلاحظ أنك تقرء الكود بشكل أسرع 

 

ويسهل عليك التنقل من مكان الى كان أخر أو جهاز أخر أو مشروع ثاني وايضآ يسهل عليك تعديل عليها بالمستقبل.

 

أسلوب الكتابة في الدوال.

 

بالسطر 5: ضروري جدآ يتم أضافة الدالة لكي يتم أنشاءها لانه هذا الشئ أجباري في اللغة السي بلس بلس

void أو datatype: تستطيع تضع void و لكن ليتم أستقبال أي شي في حال وضعت Return 

ولكن datatype بأمكاننا نضع int او string او char ولكن يتم أستقبال القيم من خلال return.

 

السطر 8: يسمى Function call آي يتم تشغيل الدالة التي تم وضعها للعلم لن يتم تشغيل الدالة الأ أن وضعت function call في main 

أحنا نعرف compiler سيقرءها لهذا السبب  و سوف يقرء أي شي بداخل main.

 

السطر 12: تعريف الدالة ليتم استخدامه و كتابة الكود بداخلها. هنا نستطيع كتابة الكود ليتم أظهار اي نتيجة من خلالها.

 

نجرب نكتب طباعة و نشوف كيف يتم الطباعة من الدالة.

 

ستلاحظ النتيجة تحت hello world  مره وحده 

 

بسبب وضعنا في main  أستدعاء واحد فقط 

ولكن لو نسخته ثلاث مرات! ماهو النتيجة بتكون؟

 

ستلاحظ تكرر النتيجة الى 3 مرات بسبب وجود function call ثلاث مرات 

 

مثل ماقلت فهو يعتمد على Function call لانه compiler يقوم بقراءة من بداية main الى نهاية main فقط.

 

طيب ماهو الفرق بين void و data type لو أخترنا int ؟

Void 

كامثال التي عملناه سابقآ مع 

 

 

 

ستلاحظ لما عملت هذي الطريقة 

النتيجة ستكون 9 بسبب وجود Function call  ولكن هذي الطريقة بتكون مع void 

 

ولكن لو جربنا نغيره الى النوع int ليتم أستقبال ارقام بدلآ عن يكون void

 

بيكون بهذي الطريقة

 

لاحظ معي بالسطر 5 و 13 تم تغير نوع البيانات الى int  

 

ولكن في السطر 18 تم كتابة return ليش؟ ليتم حفظ القيمة 9 الى function call  في main 

 

لهذا سبب وضعنا بالسطر 8 cout او طباعة 

ليتم طباعة القيمة هو 9 

 

هذا الفرق بين void و data type  

 

void ليس لديه Return ولكن data type لديه return ليتم أستقبال القيم الى function call