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

سؤال حول ناتج عملية حسابية عند استخدامها Ÿ

مغلق
بدأه funky-coder في 21 ديسمبر 2007 · 1 رد · 446 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يعطيكوا العافية

سؤال عليه 3 علامات biggrin.gif

يا ريت الاقي جوابه عندكم

a simple class called lab has an intger (x), a constructor.

we overloaded 2 operators: operator(+) and the insertion operator

الكود التالي هو الوضع الطبيعي للكلاس وبيعطي مخرجات طبيعية وهي:

10,20


using namespace std;

class lab{
public:
friend ostream& operator<<(ostream &,lab);

lab (int s){
this->s = s;
}

lab operator+(lab r){
lab t(r.s+s);
return t;
}
private:
int s;
};

ostream& operator<<(ostream & output,lab z){
output << z.s;
return output;
}

int main(){
lab x(10);
lab r(20);
cout << "the value of x,r are " << x << " " << r << endl;
return 0;
}
#include<iostream>

اما لما غيرنا الكود اللي في ال main الى التالي صار يطلع مخرجات غلط

16,10


{
int x=10,y=5;
cout << x+y << " " << x++ << endl;
return 0;
}
int main()

شو السبب??

يا ريت الرد باسرع وقت ممكن

مشكورين سلفا

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 21 ديسمبر 2007 في 06:52

#2

السلام عليكم ,,

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

بالنسبة لسؤالك ,, الكود الثاني سيطبع 16 و 10 لأن الـ IO Streams ليست Expression عادية كـ :

x = y + (x++);

في هذه الحالة سيتم جمع المتغيرين ثم إضافة واحد لـx ,,

و لكن في عملية الطباعة عن طريق cout فكل عملية إخراج بعد المعامل >> هي Expression متكاملة لوحدها ,,

و العبارات Expression تنفذ من اليمين لليسار لو أخذنا المثال التالي :

x = a + b + c;

في هذه الحالة سيتم جمع b و c ثم سيتم جمع الناتج مع a ثم يتم تخزين الناتج في x

و في مثالك سيتم تخزين قيمة x قبل زيادة واحد تجهيزاً للطباعة على الشاشة , ثم تتم الزيادة ,

بعد ذلك سيتم تنفيذ عملية طباعة x + y و لاحظ أن الزيادة كانت قد تمت على المتغير x :)

تحياتي ,,

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 21 ديسمبر 2007 في 07:09

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…