الدوال (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