القيم الابتدائية في ++C

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 .



علي أنه يجب الإنتباه إلي القيم التي تؤخذ من الخيار المبدئي يجب أن تكون في نهاية ترتيب القيم فلا يجوز أن تتجاهل قيمة ثم تضع قيمة للمتغير الذي يليها , حيث يتسبب ذلك في بلبلة محول الصياغة .



ولهذا الأسلوب فائدة في حالة تكرار قيم ما , فلا يضطر المبرمج إلي كتابتها عند كل استدعاء . كما يتيح ذلك توسيع إمكانية دالة ما مستقبلا , بإضافة معامل لها ذات قيم ابتدائية , فتظل الاستدعاءات السابقة مستخدمة المعاملات السابقة , بينما يمكن كتابة استدعاءات جديدة تستخدم المعاملات الجديدة .

التسميات: