آموزش C++

مباحث پایه زبان C++

توابع در زبان C++ – آموزش زبان C++

  • جمعه ۱۱ آبان ۱۳۹۷
  • بازدید ۳,۰۲۴ نفر

تصویر cpp-functions_4313 توابع در زبان C++ - آموزش زبان C++

توابع در زبان C++

یک تابع گروهی از دستورات است که با هم یک کار را انجام می دهند. هر برنامه ای که با زبان برنامه نویسی C++ نوشته می شود، حتما باید یک تابع اصلی به نام تابع main() را داشته باشد. شما می توانید کدهای خود را به توابع مختلف تقسیم کنید و نحوه تقسیم کدها نیز بستگی به خود شما دارد. اما منطق تقسیم کد این است که هر تابع یک کار خاص را انجام دهد.

اعلان یک تابع، اطلاعات لازم در مورد تابع (مانند اسم تابع، مقدار بازگشتی و پارامترهای تابع) را به کامپایلر می دهد. کتابخانه استاندارد C++ توابع پیش ساخته متعددی را فراهم می کند که می توانید در برنامه های خود از آن ها استفاده کنید. برای نمونه تابع strcat() برای چسباندن دو رشته به یک دیگر استفاده می شود.

تعریف یک تابع

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

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

  • return_type : نوع داده ای است که تابع قرار است بعد از اتمام کارش باز گرداند. اگر تابع هیچ مقداری را بر نمی گرداند، می توانید آن را به صورت void تعریف کنید.
  • funcation_name : اسم تابع را مشخص می کند. اسم تابع به همراه لیست پارامترها امضای یک تابع را تشکیل می دهند.
  • parameter list : پارامترهای یک تابع را مشخص می کند. یک پارامتر مانند یک placeholder عمل می کند و زمانی که شما تابع را فراخوانی می کنید، باید مقدار پارامترهای تعریف شده را نیز به آن بدهید. همچنین یک تابع می تواند بدون پارامتر تعریف شود.
  • body of the function : بدنه تابع را مشخص می کند. بدنه تابع شامل مجموعه ای از دستورات است که عملی که تابع انجام می دهد را تعریف می کنند.

مثال

در زیر سورس کد مربوط به یک تابع که max() نام دارد را مشاهده می کنید. این تابع دو پارامتر با نام های num1 و num2 می گیرد و هر کدام که از دیگری بزرگتر باشد را به عنوان مقدار بازگشتی باز می گرداند.:

اعلان یک تابع

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

اعلان یک تابع به صورت زیر انجام می شود:

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

توجه! نام پارامترها در اعلان یک تابع مهم نیستند و فقط نوع آن ها اهمیت دارد. بنابراین می توان اعلان بالا را به این صورت نیز نوشت:

 

اعلان تابع زمانی که شما تعریف تابع را در یک فایل دیگر نوشته اید، لازم است.

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

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

شما به راحتی می توانید با نوشتن اسم تابع و دادن پارامترهای لازم آن را فراخوانی کنید. مثال زیر نحوه فراخوانی یک تابع در زبان C++ را نشان می دهد:

امتحان کنید

زمانی که کد بالا توسط کامپایلر زبان C++ اجرا شود، نتیجه زیر را تولید خواهد کرد:

آرگومان های تابع

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

در هنگام فراخوانی یک تابع، دو راه برای ارسال آرگومان ها به آن وجود دارد که در زیر مشاهده می کنید:

ردیفتوضیحات
1فراخوانی با مقدار (By Value)

در این نوع فراخوانی فقط یک کپی از مقدار اصلی به تابع ارسال می شود و تغییرات اعمال شده در تابع تاثیری بر مقدار اصلی ندارد.

فراخوانی با اشاره گر (By Pointer)

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

2فراخوانی با ارجاع (By Reference)

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

توجه! در زبان C++ به طور پیشفرض آرگومان ها به صورت فراخوانی با مقدار (By Value) به توابع ارسال می شوند. به این معنی که توابع نمی توانند مقادیر اصلی آرگومان ها را تغییر دهند.

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

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

توجه! نباید بعد از پارامتری که مقدار پیشفرض دارد، پارامتر بدون مقدار پیشفرض تعریف شود.

امتحان کنید

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

 

باکس دانلود
ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است