آرگومان های پیش فرض در ++C — به زبان ساده (+ دانلود فیلم آموزش گام به گام)
در این مقاله با معنی آرگومان های پیش فرض و روش استفاده از آنها و اعلانهای ضروری برای کاربردشان آشنا میشوید. در برنامهنویسی ++C میتوانید مقادیر پیشفرض را برای پارامترهای تابع ارائه کنید.
فیلم آموزشی آرگومانهای پیش فرض در ++C
ایده تشکیلدهنده آرگومان پیشفرض ساده است. اگر تابعی به وسیله آرگومان(های) ارسالی فراخوانی شود آن آرگومانها از سوی تابع استفاده میشوند. اما اگر آرگومان(ها) در زمان فراخوانی یک تابع ارسال نشوند، در این صورت مقادیر پیشفرض مورد استفاده قرار میگیرند. مقادیر پیشفرض در پروتوتایپ تابع به آرگومانها ارسال میشوند. برای مطالعه بخش قبلی این مجموعه مطلب آموزشی روی لینک زیر کلیک کنید:
کار کردن با آرگومانهای پیشفرض
مثال
در ادامه به یک مثال در همین رابطه میپردازیم.
آرگومان پیشفرض
1// ++C Program to demonstrate working of default argument
2#include <iostream>
3using namespace std;
4void display(char = '*', int = 1);
5int main()
6{
7 cout << "No argument passed:\n";
8 display();
9
10 cout << "\nFirst argument passed:\n";
11 display('#');
12
13 cout << "\nBoth argument passed:\n";
14 display('$', 5);
15 return 0;
16}
17void display(char c, int n)
18{
19 for(int i = 1; i <= n; ++i)
20 {
21 cout << c;
22 }
23 cout << endl;
24}
خروجی
No argument passed:
*
First argument passed:
#
Both argument passed:
$
در برنامه فوق، میتوانید مقدار پیشفرض انتساب یافته به آرگومانها را ببینید:
1void display(char = '*', int = 1);
در ابتدا، تابع ()display بدون ارسال هیچ پارامتری فراخوانی میشود. در این حالت، تابع ()display از هر دو آرگومان c = * و n = 1 استفاده میکند.
سپس در دفعه دوم تنها آرگومان نخست با استفاده از تابع ارسال میشود. در این حالت، تابع از مقدار پیشفرض نخست ارسالی استفاده نمیکند. بدین ترتیب از پارامتر واقعی ارسالی به عنوان آرگومان نخست # = c استفاده میکنیم و مقدار پیشفرض n=1 به عنوان آرگومان دوم میگیرد.
زمانی که ()display برای بار سوم فراخوانی میشود، هر دو آرگومان ارسال میشوند، آرگومانهای پیشفرض مورد استفاده قرار نمیگیرند. بنابراین مقدار $ = c و n=5 استفاده میشوند.
خطاهای رایج هنگام استفاده از آرگومان پیشفرض
1void add(int a, int b = 3, int c, int d = 4);
تابع فوق کامپایل نخواهد شد، چون شما نمیتوانید آرگومان پیشفرض را در بین دو آرگومان نادیده بگیرید. در این حالت c باید به یک مقدار پیشفرض انتساب یابد.
1void add(int a, int b = 3, int c, int d);
تابع فوق نیز کامپایل نخواهد شد. شما باید مقادیر پیشفرض را برای هر آرگومان پس از b ذکر کنید.
در این حالت، c و d نیز باید مقادیر پیشفرض بگیرند. اگر میخواهید یک آرگومان پیشفرض منفرد داشته باشد، باید مطمئن شوید که آرگومان به عنوان آخرین مورد است.
1void add(int a, int b, int c, int d = 4);
مهم نیست که از آرگومانهای پیشفرض چگونه استفاده میکنید، چون یک تابع باید همواره طوری نوشته شود که تنها یک منظور را اجرا کند.
اگر تابع شما با بیش از یک چیز یا منطق پیوند دارد، بیش از حد پیچیده محسوب میشود و بهتر است که از overload کردن تابع برای جداسازی منطق بهره بگیرید. برای مطالعه بخش بعدی این سری مقالات به لینک زیر مراجعه کنید:
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش پیشرفته C++ (شی گرایی در سی پلاس پلاس)
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- حلقه for در زبان برنامه نویسی ++C — به زبان ساده
- حلقه while و do…while در ++C — راهنمای کاربردی
- برنامه نویسی شی گرا در C++ — آموزش رایگان، به زبان ساده و جامع
==