السلام عليكم
الحلقة الثانية - الجزء الثاني.
الحلقة الثانية - الجزء الثالث.
الحلقة الثانية - الجزء الرابع.
الحلقة الثانية - الجزء الخامس.
الحلقة الثانية - الجزء السادس و الأخير.
الحلقة الثالثة - الجزء الثاني.
الحلقة الثالثة - الجزء الثالث.
الحلقة الثالثة - الجزء الرابع.
الحلقة الثالثة - الجزء الخامس و الأخير.
الحلقة الرابعة - الجزء الثاني.
مرحبا بكم إخوتي الكرام في الجزء الثالث من الحلقة الرابعة من سلسلة اختبر قدراتك, قمتُ بتقسيم الحلقة الرابعة إلى عدة أجزاء, مُرتبة حسب الصعوبة.
أجزاء هذه الحلقة ستكون خاصة بمسائل الــ OOP.
الإختبار الرابع (الجزء الثالث) :
قم بإنشاء فئة باسم stack_int تسمح بإجراء بعض العمليات على stack من الأعداد الصحيحة, هذه الأخيرة يتم حجزهم ديناميكياً و يتم إرسال الحجم إلى دالة البناء (نفترض أن القيمة الإفتراضية هي 20).
الفئة stack_int يجب أن تدعم العمليات التالية : (نفترض أن p كائن من الفئة stack_int و n عدد صحيح)
- المؤثر << حيث تدل العملية p<<n على إضافة العدد n إلى المكدس p (إذا كان المكدس مملتئ, لا يحدث شيء)
- المؤثر >> حيث تدل العملية p>>n على إسناد القيمة العليا في الــ Stack إلى المتغير n و حذف القيمة الأولى. (إذا كان المكدس فارغ, لا يتغير شيء)
- المؤثر ++ حيث تكون نتيجة العملية ++p تُساوي 1, إذا كان المكدس ممتلئ أو 0 إذا كان العكس.
- المؤثر -- حيث تكون نتيجة العملية --p تُساوي 1, إذا كان المكدس فارغ أو 0 إذا كان العكس.
نفترض أنه يُمكن استخدام المؤثرين << و >> هكذا :
p << n1 << n2 << n3 ; Or p >> n1 >> n2 << n3 ;
أيضا, يجب تصميم الفئة بحيث يستطيع المستخدم تحويل كائن من الصنف stack_int إلى مصفوفة عددية بينما لا يمكن إسناد كائن إلى آخر (يجب إظهار تنبيه و توقيف البرنامج عند محاولة إجراء عملية الإسناد).
كتابة الفئة يجب أن تتم بطريقتين مختلفتين :
- عن طريق إعادة تعريف المعاملات.
- باستخدام الــ template.
سأضع حل السؤال بعد إنتهاء عرض المحاولات.