القيم الابتدائية في ++C
القيم الابتدائية
من الإمكانيات المتاحة أيضا في استخدام الدوال , تطبيق فكرة الاختيار المبدئي default values لمعادلات الدالة المستدعاة , وذلك بأن يحدد المبرمج قيما ابتدائية لعواملها , كقيم اختيار مبدئي يستخدم عندما يغفل ذكر القيمة المرحلة , والمثال التالي , وهو تعديل للبرنامج overload.cpp يبين هذه الفكرة .
missarg.cpp
// missarg.cpp
// demonstrates missing and default arguments
// UCS Laboratories
#include <iostream.h>
#include <conio.h>
void repchar(char='*', int=45); // prototype with
// default arguments
void main()
{
repchar(); // prints 45 asterisks
repchar('='); // prints 45 equal signs
repchar('+', 30); // prints 30 plus signs
getche();
}
// repchar()
// displays line of characters
void repchar(char ch, int n) // defaults supplied if necessary
{
for(int j=0; j<n; j++) // loops n times
cout << ch; // prints ch
cout << endl;
}
وفي هذه النسخة المعدلة , وضع للدالة repchar() صيغة واحدة ثم وضعت قيم ابتدائية في سطر الإعلان عن نمطها , بالشكل الأتي :
Void repchar( 45);
وحين لم تذكر القيمتان في سطر الإستدعاء الأول , كان الحرف المطبوع هو النجمة وعدد المرات 45 (قيمتي الاختيار المبدئي ) . وحين لم يذكر العدد في سطر الاستدعاء الثاني , أخذت قيمة الاختيار المبدئي لهذا المعامل , أي 45 .
علي أنه يجب الإنتباه إلي القيم التي تؤخذ من الخيار المبدئي يجب أن تكون في نهاية ترتيب القيم فلا يجوز أن تتجاهل قيمة ثم تضع قيمة للمتغير الذي يليها , حيث يتسبب ذلك في بلبلة محول الصياغة .
ولهذا الأسلوب فائدة في حالة تكرار قيم ما , فلا يضطر المبرمج إلي كتابتها عند كل استدعاء . كما يتيح ذلك توسيع إمكانية دالة ما مستقبلا , بإضافة معامل لها ذات قيم ابتدائية , فتظل الاستدعاءات السابقة مستخدمة المعاملات السابقة , بينما يمكن كتابة استدعاءات جديدة تستخدم المعاملات الجديدة .
تعليقات
إرسال تعليق