ک تابع مجموعه ای از دستورات است که در کنار هم یک کار را انجام می دهند. هر برنامه‌ای که با زبان برنامه نویسی C++ نوشته شده باشد، حداقل دارای یک تابع است که  main() نام دارد. می‌توان در کل برنامه توابع دیگری اضافه کرد.
می توانید کدهای خود را به توابع جداگانه تقسیم کنید که نحوه تقسیم کد بستگی به خود شما دارد اما معمولا نحوه تقسیم بندی به این صورت است که هر تابع یک کار خاص را انجام میدهد.
اعلان یک تابع اطلاعاتی درباره نام تابع، نوع بازگشتی و پارامترهای آن را به کامپایلر می دهد. تعریف یک تابع فرمت کلی آن را فراهم می‌کند.
کتابخانه استاندارد C++ شامل چندین توابع داخلی است که برنامه می تواند از آن استفاده کند. برای مثال تابع strcat() برای اتصال دو رشته و تابعmemcpy() برای کپی یک مکان حافظه به مکان دیگر مورد استفاده قرار می گیرد که البته توابع بسیار زیادی در C++ وجود دارد.
معمولا برنامه نویسان توابع را  با نام های دیگری مانند method و یا subroutin و یا procedure نیز ضدا می زنند.

نحوه تعریف یک تابع

شکل کلی  تعریف یک تابع در C++ به شکل زیر است:
 

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

تعریف بالا متشکل از یک بخش header و یک بخش بدنه آن است. در اینجا تمام قسمت های یک تابع توضیح داده خواهد شد:

  • return type : نوع داده ای که تابع بعد از اتمام کارش قرار است برگرداند را مشخص میکند. اگر قرار است تابع هیچ مقداری برنگرداند می توانید آن را void تعریف کنید.
  • function name : نشان دهنده نام واقعی یک تابع است. اسم تابع و لیست پارامترهای آن امضای یک تابع را تشکیل می دهند.
  • parameter list : یک پارامتر مانند یک  placeholder عمل می کند و زمانی که یک تابع فراخوانی می شود یک مقدار به پارامتر منتقل می شود. این مقدار به عنوان پارامتر یا آرگومان در نظر گرفته می شود. منظور از لیست پارامترها، نوع، ترتیب و تعداد پارامترهای یک تابع است.

به دلیل آنکه پارامترها اختیاری هستند ممکن است یک تابع پارامتری نداشته باشد.

مثال

کد زیر مثالی برای تابعی به نام max() است که دو پارامتر به نام 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;
}

C++

Copy

اعلان تابع

اعلان تابع اطلاعاتی در مورد نحوه فراخوانی و نام تابع به کامپایلر می دهد. بدنه تابع می تواند به صورت جداگانه تعریف شود.

اعلان یک تابع شامل بخش های زیر است:

return_type function_name( parameter list );

C++

Copy

اعلان تابع max() که در بالا به آن اشاره کردیم به صورت زیر است:

int max(int num1, int num2);

C++

Copy

نام پارامتر ها در زمان اعلان تابع اهمیتی ندارد و تنها نوع آنها مهم اند. مثال زیر اعلان یک تابع معتبر را ارائه داده است:

int max(int, int);

C++

Copy

اعلان تابع زمانی مورد نیاز است که تابعی را در یک فایلی تعریف می کنید و در فایلی دیگر به آن تابع احتیاج دارید. در این صورت باید تابع را بالای فایلی که آن را می‌خواهید فراخوانی کنید اعلان کنید.

فراخوانی یک تابع

در زمان ایجاد یک تابع در C++  باید تعیین کنید که تابع قرار است چه کارهایی انجام دهد و برای استفاده از آن تابع، باید آن را فراخوانی کنید.
هنگامی که برنامه تابعی را فراخوانی می کند، کنترل برنامه به تابع منتقل می شود. یک تابع فراخوانی شده وظایف مشخصی را انجام می دهد و هنگامی که مقادیر بازگشتی آن به دست می آید و یا زمانی که دستورات به پایان می رسند، کنترل برنامه به برنامه اصلی منتقل می شود.
تنها با استفاده از نام تابع و پارامترهای مورد نظر آن می توانید تابع را فراخوانی کنید و اگر تابع مقداری را برگرداند می توانید آن مقدار بازگشتی را ذخیره کنید. به مثال زیر توجه کنید:
 

#include 
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

C++

Copy

آرگومان تابع

اگر تابعی بخواهد از آرگومان استفاده کند، باید متغیرهایی را برای دریافت این آرگومان ها اعلان کنید. این متغیرها پارامترهای رسمی تابع نامیده می شوند.
پارامترها همانند سایر متغیرهای محلی در داخل تابع عمل می‌کنند و بلافاصله پس از ورود به تابع ایجاد می‌شوند و در زمان خروج نیز از بین می روند. 

ردیفتوضیحات
1

فراخوانی توسط مقدار

در این روش مقدار واقعی یک آرگومان در پارامتر تابع کپی می شود و تغییرات صورت گرفته در پارامتر آن تابع تاثیری بر آرگومان آن ندارد.

2

فراخوانی توسط اشاره گر

در این روش آدرس آرگومان در پارامتر کپی می شود و این آدرس در تابع برای دسترسی به آرگومان مورد استفاده قرار می گیرد. این به معنای آن است که اگر تغییری در پارامتر ایجاد شود، بر آرگومان نیز تاثیر می گذارد.

3

فراخوانی با ارجاع

در این روش آدرس مرجع آرگومان در پارامتر کپی می شود. این آدری مرجع برای دسترسی به آرگومان در زمان فراخوانی مورد استفاده قرار می گیرد. هر تغییری در پارامتر بر روی آرگومان تاثیر گذار است.

برای ارسال آرگومان ها به توابع به صورت پیش فرض از فراخوانی با مقدار استفاده می شود که به معنی آن است که توابع نمی‌توانند مقدار آرگومان ها را در این حالت تغییر دهند.

مقادیر پیش فرض برای پارامتر ها

وقتی که یک تابع را تعریف می کنید می توانید یک مقدار پیش فرض برای هر یک از آخرین پارامترها را تعیین کنید. این مقدار در زمانی که آرگومان مربوطه در هنگام فراخوانی تابع خالی باشد مورد استفاده قرار می گیرد. این کار با استفاده از عملگرها و مقادیر انتسابی برای آخرین پارامترها صورت می گیرد. اگر آرگومان مشخص شود، این مقدار پیش فرض نادیده گرفته شده و مقدار مشخص شده در نظر گرفته می شود. به مثال زیر توجه کنید:
 

#include 
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;
}

C++

Copy

پس از کامپایل و اجرای کد بالا نتیجه زیر نمایش داده می شود 

Total value is :300
Total value is :120

 

از اینکه سایت برنامه نویسان را انتخاب کردید متشکریم با تشکر از سایت ilikephp.

آموزش برنامه نویسی قسمت چهاردهم

آموزش برنامه نویسی قسمت سیزدهم

آموزش برنامه نویسی قسمت دوازدهم

آموزش برنامه نویسی قسمت یازدهم

آموزش برنامه نویسی قسمت دهم

آموزش برنامه نویسی قسمت نهم

آموزش برنامه نویسی قسمت هشتم

تابع ,یک ,int ,فراخوانی ,برنامه ,max ,یک تابع ,می شود ,است که ,آن را ,می توانید ,local variable declaration

مشخصات

آخرین ارسال ها

آخرین جستجو ها


برترفايل مهندس احمدصبحی کارشناس ارشددانشگاه تبریز rtedmus تضمینی کنکور99-قبولی تضمینی کنکور99باراد ronasketarh bamboplant الان بخر تحویل بگیر دوربین مداربسته / مقالات دوربین مداربسته / هایک ویژن toolscontent faslekbarf