ک تابع مجموعه ای از دستورات است که در کنار هم یک کار را انجام می دهند. هر برنامهای که با زبان برنامه نویسی C++ نوشته شده باشد، حداقل دارای یک تابع است که main() نام دارد. میتوان در کل برنامه توابع دیگری اضافه کرد.
می توانید کدهای خود را به توابع جداگانه تقسیم کنید که نحوه تقسیم کد بستگی به خود شما دارد اما معمولا نحوه تقسیم بندی به این صورت است که هر تابع یک کار خاص را انجام میدهد.
اعلان یک تابع اطلاعاتی درباره نام تابع، نوع بازگشتی و پارامترهای آن را به کامپایلر می دهد. تعریف یک تابع فرمت کلی آن را فراهم میکند.
کتابخانه استاندارد C++ شامل چندین توابع داخلی است که برنامه می تواند از آن استفاده کند. برای مثال تابع strcat() برای اتصال دو رشته و تابعmemcpy() برای کپی یک مکان حافظه به مکان دیگر مورد استفاده قرار می گیرد که البته توابع بسیار زیادی در C++ وجود دارد.
معمولا برنامه نویسان توابع را با نام های دیگری مانند method و یا subroutin و یا procedure نیز ضدا می زنند.
شکل کلی تعریف یک تابع در C++ به شکل زیر است:
return_type function_name( parameter list ) { body of the function }
تعریف بالا متشکل از یک بخش header و یک بخش بدنه آن است. در اینجا تمام قسمت های یک تابع توضیح داده خواهد شد:
به دلیل آنکه پارامترها اختیاری هستند ممکن است یک تابع پارامتری نداشته باشد.
کد زیر مثالی برای تابعی به نام 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++ باید تعیین کنید که تابع قرار است چه کارهایی انجام دهد و برای استفاده از آن تابع، باید آن را فراخوانی کنید.
هنگامی که برنامه تابعی را فراخوانی می کند، کنترل برنامه به تابع منتقل می شود. یک تابع فراخوانی شده وظایف مشخصی را انجام می دهد و هنگامی که مقادیر بازگشتی آن به دست می آید و یا زمانی که دستورات به پایان می رسند، کنترل برنامه به برنامه اصلی منتقل می شود.
تنها با استفاده از نام تابع و پارامترهای مورد نظر آن می توانید تابع را فراخوانی کنید و اگر تابع مقداری را برگرداند می توانید آن مقدار بازگشتی را ذخیره کنید. به مثال زیر توجه کنید:
#includeusing 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 | فراخوانی با ارجاع در این روش آدرس مرجع آرگومان در پارامتر کپی می شود. این آدری مرجع برای دسترسی به آرگومان در زمان فراخوانی مورد استفاده قرار می گیرد. هر تغییری در پارامتر بر روی آرگومان تاثیر گذار است. |
برای ارسال آرگومان ها به توابع به صورت پیش فرض از فراخوانی با مقدار استفاده می شود که به معنی آن است که توابع نمیتوانند مقدار آرگومان ها را در این حالت تغییر دهند.
وقتی که یک تابع را تعریف می کنید می توانید یک مقدار پیش فرض برای هر یک از آخرین پارامترها را تعیین کنید. این مقدار در زمانی که آرگومان مربوطه در هنگام فراخوانی تابع خالی باشد مورد استفاده قرار می گیرد. این کار با استفاده از عملگرها و مقادیر انتسابی برای آخرین پارامترها صورت می گیرد. اگر آرگومان مشخص شود، این مقدار پیش فرض نادیده گرفته شده و مقدار مشخص شده در نظر گرفته می شود. به مثال زیر توجه کنید:
#includeusing 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
درباره این سایت