در این آموزش می آموزید که آرگومان یا پارامتر پیش فرض چیست، چگونه استفاده و فراخوانی می شود. در برنامه نویسی ++C ، می توانید برای پارامترهای تابع مقادیر پیش فرض مشخص کنید.
ایده آرگومان پیش فرض ساده است. اگر یک تابع با آرگومان (ها) ارسالی فراخوانی شود، آرگومان (ها) توسط تابع استفاده می شوند.
اما اگر هنگام فراخوانی یک تابع آرگومان ارسال نشود، به جای آن مقادیر پیش فرض استفاده می شوند.
نحوه کار آرگومان های پیش فرض
مثال: آرگومان پیش فرض
// C++ Program to demonstrate working of default argument
#include <iostream>
using namespace std;
void display(char = ‘*’, int = 1);
int main()
{
cout << “No argument passed:\n”;
display();
cout << “\nFirst argument passed:\n”;
display(‘#’);
cout << “\nBoth argument passed:\n”;
display(‘$’, 5);
return 0;
}
void display(char c, int n)
{
for(int i = 1; i <= n; ++i)
{
cout << c;
}
cout << endl;
}
خروجی
No argument passed:
*
First argument passed:
#
Both argument passed:
$$$$$
در برنامه بالا، می توانید مقدار پیش فرض اختصاص یافته به آرگومان را مشاهده کنید.
void display(char = ‘*’, int = 1);.
در ابتدا تابع ()display بدون ارسال هیچ آرگومانی فراخوانی می شود. در این مورد، تابع ()display از هر دو پارامترهای پیش فرض *=c و n = 1 استفاده می کند.
سپس، در دومین فراخوانی تابع تنها اولین آرگومان ارسال می شود. در این حالت، تابع از مقدار پیش فرض برای آرگومان اول استفاده نمی کند. پارامتر ارسال شده C=# را برای آرگومان اول و مقدار پیش فرض n = 1 را برای دومین آرگومان استفاده می کند.
هنگامی که ()display برای بار سوم با هر دو آرگومان فراخوانی می شود، مقادیر پیش فرض استفاده نشده و مقادیر $=c و n=5 استفاده می شوند.
اشتباهات رایج هنگام استفاده از آرگومان پیش فرض
۱- void add(int a, int b = 3, int c, int d = 4);
تابع بالا کامپایل نخواهد شد. شما نمی توانید یک آرگومان پیش فرض بین دو آرگومان را مقدار دهی نکنید.
در این مورد، برای c نیز باید یک مقدار پیش فرض تعیین شود.
۲- void add(int a, int b = 3, int c, int d);
تابع بالا نیز کامپایل نخواهد شد. شما باید برای آرگومان های بعد از b مقادیر پیش فرض تعیین کنید.
در این مورد، برای c و d نیز باید مقادیر پیش فرض تعیین شود.
اگر میخواهید یک آرگومان پیش فرض واحد داشته باشید، مطمئن شوید که آخرین آرگومان باشد.
void add(int a, int b, int c, int d = 4);
۳- مهم نیست که چطور از آرگومان پیش فرض استفاده می کنید، یک تابع همیشه باید برای یک هدف نوشته شود.
اگر تابع بیش از چند کار بخواهد انجام دهد، می توانید از سربارگذاری توابع استفاده کنید.