C++أخطاء قد تظهر بسبب وضع قيم إفتراضية للباراميترات
في جميع الأمثلة, سنفترض أننا نريد تعريف دالة و في كل مرة نحاول تمرير قيم إفتراضية لبعض عناصرها.
المثال الأول
في المثال التالي قمنا بإعطاء c قيمة إفتراضية و هذا لن يسبب مشكلة لأنه لا يوجد بعده أي باراميتر.
void printMax(int a, int b, int c=0)
{
}المثال الثاني
المثال التالي فيه مشكلة حيث أننا قمنا بإعطاء b قيمة إفتراضية و لم نعطي قيمة إفتراضية للباراميتر c الموجود بعده.
هذا الأمر سيؤدي لظهور مشكلة عند تشغيل الكود.
void printMax(int a, int b=0, int c)
{
}هذه الدالة ستسبب الخطأ التالي في الكود و الذي يعني أن المشكلة هي نسيان وضع قيمة إفتراضية للباراميتر الثالث.
المثال الثالث
في المثال التالي قمنا بإعطاء b و c قيم إفتراضية و هذا لن يسبب مشكلة لأنه لا يوجد بعدهما أي باراميتر.
void printMax(int a, int b=0, int c=0)
{
}المثال الرابع
المثال التالي فيه مشكلة حيث أننا قمنا بإعطاء a قمية إفتراضية و لم نعطي قيمة إفتراضية للباراميترين b و c الموجودين بعده.
هذا الأمر سيؤدي لظهور مشكلة عند تشغيل الكود.
void printMax(int a=0, int b, int c)
{
}هذه الدالة ستسبب الخطأ التالي في الكود و الذي يعني أن المشكلة هي نسيان وضع قيمة إفتراضية للباراميترين الثاني و الثالث.
error: default argument missing for parameter 3 of 'void printMax(int, int, int)'
المثال الخامس
في المثال التالي قمنا بإعطاء a و b و c قيم إفتراضية, أي كل البارميترات و بالتالي لا يوجد أي مشكلة هنا.
void printMax(int a=0, int b=0, int c=0)
{
}