مقدار دهی اولیه به آرگومان های تابع (C++)
هنگامی که یک تابع تعریف می شود معمولا تعدادی آرگومان را در بر می گیرد و در هنگام فراخوانی نیز نیازمند این است که آرگومان ها به شیوه ی صحیح با آن ارسال شوند. اگر در هنگام فراخوانی تابع آرگومان های صحیح یا کافی به آن ارسال نشود معمولا با مشکل مواجه می شویم و کامپایلر به ما اخطار می دهد که آرگومان های ارسالی مطابق آرگومان های تعریف شده نیستند.
این امکان وجود دارد که آرگومان های یک تابع را به صورت پیشفرض مقدار دهی کنیم. با این کار اگر هنگام فراخوانی تابع، این آرگومان های به تابع ارسال نشوند، تابع از مقادیر پیشفرض استفاده خواهد کرد و اگر ارسال شوند، این مقادیر جایگزین مقادیر پیشفرض خواهند شد. مقدار دهی آرگومان های تابع دقیقا مشابه مقدار دهی به متغیر ها است ولی یک نکته ی مهم در مورد آن وجود دارد :
- همیشه آرگومان های پیشفرض باید در انتهای لیست آرگومان ها قرار داشته باشند.
برای مثال تابع زیر دارای 4 آرگومان متفاوت است که 2 عدد از آنها دارای مقادیر پیشفرض هستند.
Void Sample (int a, char b, double c = 10.56, string d = "hello")
{
// code
{
// code
}
از بین چهار ارگومان a, b, c ,d دو آرگومان اول دارای مقادیر پیشفرض نسیتند و هنگام فراخوانی تابع Sample باید حتما مقادیر یا متغیرهای مناسب برای آنها ارسال شوند ولی دو آرگومان آخر دارای مقادیر پیشفرض هستند و ارسال مقادیر یا متغیر های به این آرگومان ها اجباری نیست. به این شیوه، "حذف آرگومان" نیز گفته می شود. نکته ی دیگر در اینجا این است که :
- تمام آرگومان های سمت راست آرگومان حذف شده، حذف می شوند.
یعنی اینکه برای مثال اگر در مثال بالا ارگومان c را حذف کنید، آرگومان d نیز خودبه خود حذف می شود. این قانون دیگری است که در مورد حذف آرگومان ها وجود دارد. پس نمیتوان یکی از آرگومان های پیشفرض را حذف کرد و توقع داشته باشید آرگومان پس از آن را به تابع ارسال کنید. همیشه آرگومان های سمت راست آرگومان حدف شده، تا آخر حذف می شوند و باید تمام آرگومان هایی که میخواهید مقدار دهی شوند، قبل از آرگومان حذف شده باشند.
+ نوشته شده در پنجشنبه چهارم اسفند ۱۳۹۰ ساعت 19:58 توسط MEC
|
GENERAL INFORMATION