الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

مغلق
بدأه Snack3r في 12 سبتمبر 2012 · 2 رد · 614 مشاهدة · في اختبر قداراتك
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

خمن مُخرجات الكود التالي : (يُمنع استخدام الــ Compiler)

#include <iostream>
using namespace std;

class point {
    int x, y;
public:

    point(int abs, int ord) // constructeur 2 arguments
    {
        x = abs;
        y = ord;
    }

    operator int() // "cast" point --> int
    {
        cout << "** appel int() pour le point " << x << " " << y << endl;
        return x;
    }
};

void fct(double v) {
    cout << "$$ appel fct avec argument : " << v << endl;
}

int main() {
    point a(1, 4);
    int n1;
    double z1, z2;

    n1 = a + 1.75; // instruction 1
    cout << "n1 = " << n1 << endl;
    z1 = a + 1.75; // instruction 2
    cout << "z1 = " << z1 << endl;
    z2 = a; // instruction 3
    cout << "z2 = " << z2 << endl;
    fct(a); // instruction 4

    return 0;
}

علل إجابتك !

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

#2

مجرد حدس..المخرجات:

** appel int() pour le point  1 4
n1 = 2
** appel int() pour le point  1 4
z1 = 2.75
** appel int() pour le point  1 4
z2 = 1
** appel int() pour le point  1 4
$$ appel fct avec argument :  1

التعليل:

n1 = a + 1.75; // تحدث كاست الى int للمتغير a قبل الجمع
z1 = a + 1.75; // نفس الشيء
z2 = a; // نفس الشيء
fct(a); // كاست للمتغير a بعد تمريره للدالة لأنها لا تستقبل point

[سبحان الله و بحمده, سبحان الله العظيم]

هذا الموضوع مغلق.

مواضيع مشابهة