السلام عليكم ,,
عندما بدأت البرمجة بلغة ++C, لم أعرف أنه كان ينتظرني الكثير في عالم الفئات !
عندما أقول الكثير فأنا أعني ذلك بكل ما تحمله الكلمة من معنى :rolleyes:
في السطور التالية, ستجد إحدى المشاكل التي قد يشيب الرأس لها و لا تستطيع اكتشافها :D , هذه المشكلة وقعت لي عندما درست مادة الـ++C, حتى أكون معكم صريحاً حتى الشخص الذي كان يقيم لي برنامجي لم يستطع اكتشاف العلة :D
المهم أني قرأت و قرأت و قرأت و لم أجد حلاً لمشكلتي, إلى أن ألهمني الله الصبر مع الأستاذة ++C :D وو فقني لاقتناء مرجع محترم لها, حينها عرفت مشكلتي,
سأطرح لكم المشكلة و سأنتظر رأيكم في المشكلة لنصل إلى الحل,
تصور أن لديك فئة بسيطة جداً :
class Test{
public :
Test(): y(3), x(y) {};
void printXY(){
cout << "x = " << x << endl << "y = " << y;
};
private :
int x;
int y;
};المهم أني في الـ constructor الخاص بالفئة قمت بعملية الـ initialization للمتغيرات الخاصة بها, و هما x و y,
طبعاً فمت بتعريف الفئة كالتالي في برنامجي :
Test problem;
و أسميت الكائن "مشكلة" problem :D ,,
كل ما سيحدث أن y ستحمل الرقم 3 بعد ذلك سيتم مساواة x لتصيح مساوية لـ y ,
y = 3 x = y // x = 3
بسيط جداً أليس كذلك :clapping: ,
الآن قم باستدعاء الدالة printXY من الكائن في برنامجك :
problem.printXY();
ستظهر لك المشكلة العويصة , قيمة x ستكون عشوائية أما y فستساوي 3 كما شرحنا سابقاً ,
السؤال هنا, لماذا x يحمل قيم عشوائية, ألم نساويه بـy التي تساوي 3 أصلاً ؟؟ :resentful:
أنا في انتظاركم ,,
تحياتي ,,


