أنواع functions في c ++ || تعلم c++ خطوة بخطوة


قبل قراءة هذا البرنامج التعليمي، يجب أن تكون لديك معرفة بالمؤشرات pointers.

Functions هي اللبنات الأساسية للبرامج. إنها تجعل البرامج أكثر نمطية وسهلة القراءة والإدارة. يجب أن تحتوي جميع برامج C ++ على الوظيفة main (). يبدأ تنفيذ البرنامج من الوظيفة main (). يمكن أن يحتوي برنامج C ++ على أي عدد من functions وفقًا للاحتياجات.  


انواع الدوال في لغة ++ Types of functions in C

Function هي مجموعة من الأوامر التي تعمل معًا. كل برنامج مكتوب بلغة البرمجة C ++ له وfunction واحدة على الأقل تسمى main (). يمكن إضافة وfunctions أخرى في جميع أنحاء التطبيق.

يمكنك تقسيم التعليمات البرمجية الخاصة بك إلى و functions منفصلة ، اعتمادًا على كيفية تقسيم الكود، ولكن عادةً ما تقوم كل وfunction بعمل معين.

يعطي إعلان الدالة للمجمع معلومات حول اسم function ونوع الإرجاع والمعلمات. يوفر تحديد وfunction شكلها العام.

تتضمن مكتبة C ++ القياسية العديد من الوظائف المدمجة التي يمكن للبرنامج استخدامها. على سبيل المثال، تُستخدم وظيفة strcat () لربط سلسلتين، ويتم استخدام وظيفة memcpy () لنسخ موقع ذاكرة إلى آخر، على الرغم من وجود العديد من الوظائف في C ++.

عادةً ما يعادي المبرمجون الوظائف بأسماء أخرى مثل  method أو subroutin أو procedure.


كيفية تحديد Function

التعريف العام للدالة function في C ++ هو كما يلي:

return_type function_name( parameter list ) {
body of the function
}


يتكون التعريف أعلاه من قسم header وقسم أساسي. هنا سيتم شرح جميع أجزاء function:

return type هو نوع البيانات للقيمة التي تُرجعها function. تقوم بعض functions بتنفيذ العمليات المطلوبة دون إرجاع قيمة. في هذه الحالة، فإن return_type هي الكلمة الأساسية void.

function name هذا هو الاسم الفعلي ل function. يشكل اسم function  و parameter list  معًا توقيع function.

parameter list تعمل parameter كعنصر placeholder، وعندما يتم استدعاء function، يتم تمرير قيمة إلى parameter. تعتبر هذه القيمة parameter أو وargument. تشير قائمة parameters إلى نوع parameters الخاصة ب function وترتيبها وعددها.

نظرًا لأن parameters اختيارية، فقد لا تحتوي على دالة حدودية.


امثلة على function في C++

الكود التالي هو مثال ل function تسمى max () تأخذ parameters two تدعى num1 و num2 وترجع أكبرهما.

// // function returning the max between two numbers

int max(int num1, int num2) {
// local variable declaration
int result;

if (num1 > num2)
result = num1;
else
result = num2;

return result;
}


Function Declaration

يعطي Function Declaration للمترجم معلومات حول كيفية الاتصال واسم  function. يمكن تعريف جسم  function بشكل فردي.

يتكون Function Declaration من الأقسام التالية:

return_type function_name( parameter list );


( ) Function Declaration main المذكورة أعلاه هيو كما يلي:

int max(int num1, int num2);
C++
Copy


لا يهم اسم parameters عند Function Declaration، ونوعها فقط هو المهم. يوفر المثال التالي Function Declaration صالحة:


int max(int, int);

Function Declaration مطلوب عندما تحدد Function في ملف واحد وتحتاج إلى هذه Function  في ملف آخر. في هذه الحالة، يجب أن تعلن عن Function  في أعلى الملف الذي تريد الاتصال به.


استدعاء الدالة Calling a Function

عند إنشاء Function في C ++ ، يجب عليك تحديد ما يفترض أن تقوم به Function، ويجب أن تسميها لاستخدام هذه Function.

عندما يستدعي البرنامج Function، يتم نقل التحكم في البرنامج إلى Function. تؤدي Function المستدعاة مهامًا معينة، وعندما يتم الوصول إلى return values أو عند اكتمال الأوامر، يتم نقل التحكم في البرنامج إلى البرنامج الرئيسي.

يمكنك فقط استدعاء الدالة باستخدام اسم Function ومعلماتها، وإذا قامت Function بإرجاع قيمة، فيمكنك حفظ هذه القيمة المرجعة. تأمل المثال التالي:

#include <iostream>
using namespace std;

// function declaration
int max(int num1, int num2);

int main () {
// local variable declaration:
int a = 100;
int b = 200;
int ret;

// calling a function to get max value.
ret = max(a, b);
cout << "Max value is : " << ret << endl;

return 0;
}

// function returning the max between two numbers
int max(int num1, int num2) {
// local variable declaration
int result;

if (num1 > num2)
result = num1;
else
result = num2;

return result;
}
C++
Copy


احتفظنا بدالة () max  مع  () main وقمنا بتجميع شفرة المصدر. بعد تجميع وتنفيذ الكود أعلاه، يتم عرض النتيجة التالية:


Max value is : 200


Function Arguments

إذا كانت الوظيفة تريد استخدام الوسائط ، فيجب أن تعلن عن المتغيرات التي تقبل قيم الوسائط. تسمى هذه المتغيرات formal parameters لدالة.

تتصرف formal parameters مثل المتغيرات المحلية الأخرى داخل Function ويتم إنشاؤها عند الدخول إلى Function ويتم إزالتها عند الخروج.


الرقمالوصف
1
Call by Value

تنسخ هذه الطريقة القيمة الفعلية ل argument  إلى formal parameter  للدالة. في هذه الحالة ، لا تؤثر التغييرات التي تم إجراؤها على parameter داخل الدالة على  argument.

2
Call by Pointer

تنسخ هذه الطريقة عنوان argument  إلى formal parameter داخل function، يتم استخدام العنوان للوصول إلى argument الفعلية المستخدمة في call. هذا يعني أن التغييرات التي تم إجراؤها على parameter  تؤثر على argument .

3
Call by Reference

تقوم هذه الطريقة بنسخ مرجع argument إلى formal parameter. داخل  function، يتم استخدام المرجع للوصول إلى  argument الفعلية المستخدمة في Call. هذا يعني أن التغييرات التي تم إجراؤها على  parameter تؤثر على  argument.


لتمرير arguments إلى functions بشكل افتراضي، يتم استخدام Call by Value، مما يعني أن functions لا يمكنها تغيير قيمة arguments في هذه الحالة.


القيم الافتراضية للمعلمات Default Values for Parameters

عند تحديد function، يمكنك تعيين قيمة افتراضية لكل من  parameters الأخيرة. تُستخدم هذه القيمة عندما تكون argument المقابلة فارغة عند استدعاء function. يتم ذلك باستخدام عوامل التشغيل وقيم التخصيص لأحدث parameters. إذا تم تحديد argument، فسيتم تجاهل هذه القيمة الافتراضية ويتم أخذ القيمة المحددة في الاعتبار. تأمل المثال التالي:


#include <iostream>
using namespace std;

int sum(int a, int b = 20) {
int result;
result = a + b;

return (result);
}
int main () {
// local variable declaration:
int a = 100;
int b = 200;
int result;

// calling a function to add the values.
result = sum(a, b);
cout << "Total value is :" << result << endl;

// calling a function again as follows.
result = sum(a);
cout << "Total value is :" << result << endl;

return 0;
}

بعد تجميع وتنفيذ الكود أعلاه، يتم عرض النتيجة التالية:


Total value is :300
Total value is :120



كلمات مفتاحية: