ahmed.o.mohamed

اختبر قدراتك في C/CPP - الحلقة الرابعة, الجزء الرابع عشر

5 ردود في هذا الموضوع

السلام عليكم

الحلقة الأولى.

الحلقة الثانية - الجزء الأول.

الحلقة الثانية - الجزء الثاني.

الحلقة الثانية - الجزء الثالث.

الحلقة الثانية - الجزء الرابع.

الحلقة الثانية - الجزء الخامس.

الحلقة الثانية - الجزء السادس و الأخير.

الحلقة الثالثة - الجزء الأول.

الحلقة الثالثة - الجزء الثاني.

الحلقة الثالثة - الجزء الثالث.

الحلقة الثالثة - الجزء الرابع.

الحلقة الثالثة - الجزء الخامس و الأخير.

الحلقة الرابعة - الجزء الأول.

الحلقة الرابعة - الجزء الثاني.

الحلقة الرابعة - الجزء الثالث.

الحلقة الرابعة - الجزء الرابع.

الحلقة الرابعة - الجزء الخامس.

الحلقة الرابعة - الجزء السادس.

الحلقة الرابعة - الجزء السابع.

الحلقة الرابعة - الجزء الثامن.

الحلقة الرابعة - الجزء التاسع.

الحلقة الرابعة - الجزء العاشر.

الحلقة الرابعة - الجزء الحادي عشر.

الحلقة الرابعة - الجزء الثاني عشر.

الحلقة الرابعة - الجزء الثالث عشر.

مرحبا بكم إخوتي الكرام في الجزء الرابع عشر من الحلقة الرابعة من سلسلة اختبر قدراتك, قمتُ بتقسيم الحلقة الرابعة إلى عدة أجزاء, مُرتبة حسب الصعوبة.

أجزاء هذه الحلقة ستكون خاصة بمسائل الــ OOP.

الإختبار الرابع (الجزء الرابع عشر) :

لتكن لدينا التعريف التالي للــ Function Template :

template <class T, class U> T fct(T a, U b, T c) { 
.....
}

مع الإعلانات التالية :

int n, p, q ;
float x ;
char t[20] ;
char c ;

من ضمن الكتابات الآتية, ما هي الإستدعاءات الصحيحة ؟ و ما هي تواقيع الــ functions instantiated ؟

fct (n, p, q) ; // appel I
fct (n, x, q) ; // appel II
fct (x, n, q) ; // appel III
fct (t, n, &c) ; // appel IV

سأضع حل السؤال بعد إنتهاء عرض المحاولات.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مجرد محاولة:

صحيحة

fct (n, p, q) ; // appel I
//fct(<T:int>, <U:int>, <T:int>)

صحيحة

fct (n, x, q) ; // appel II
//fct(<T:int>, <U:float>, <T:int>)

خاطئة:


fct (x, n, q) ; // appel III
//fct(<T:float>, <U:int>, <T:int>) error

صحيحة

fct (t, n, &c) ; // appel IV
//fct(<T:cha*>, <U:int>, <T:char*>)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه


fct (n, p, q) ; // appel I

// correcte car 'n' et 'p' sont déclaraient avec le même classe T

fct (n, x, q) ; // appel II

// correcte + la même façon

fct (x, n, q) ; // appel III

// incorrecte car 'x' et 'p' ne sont pas du même type (float et int)

fct (t, n, &c) ; // appel IV

// incorrecte car ('t' est "char *" ) et ('c' est "char")

ما يهمنا هنا هو 'T' ، إن كان المتغيران متطابقان فالنتيجة صحيحة و إن كان العكس فالنتيجة خاطئة wacko.gif

تم تعديل بواسطه أحمد الشنقيطي
دمج المشاركات.
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

@ياسين

محاولتك صحيحة.

@حمزه

أخطأت في الحالة الأخيرة.

التصحيح :

a. L’appel I est correct ; il instancie la fonction :

int fct (int, int, int)

b. L’appel II est correct ; il instancie la fonction :

int fct (int, float, int)

c. L’appel III est incorrect.

d. L’appel IV est correct selon la norme. Il instancie la fonction :

char * fct (char *, int, char *)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

تم منح النقاط للمشاركات المفيدة.

يُغلق.

أراكم في الجزء الخامس عشر من الحلقة الرابعة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .