Abstract base class

من ويكي الهندسة المعلوماتية
اذهب إلى: تصفح، ابحث

عند تعريف الصفوف يفترض بأن نكون قادرين على تعريف أغراض منها,في بعض الحالات,نحتاج لتعريف صف دون أن يكون بإمكاننا تعريف أغراض من هذا الصف وهذا مايسمى بالصف المجرد أو Abstract class .

وتستخدم هذه الصفوف عادة كصفوف أساسية base في هرمية الوراثة,بعكس الصفوف العادية التي يمكن تعريف أغراض منها والتي تسمى بconcerte classes .

كيف يمكن تحقيق الAbstract class؟

يتم ذلك بتعريف كل أو بعض التوابع الظاهرية للصف المجرد على أنها pure ويتم ذلك على النحو التالي :

مثال (التابع draw ) :

virtual void draw()=0

ومن الخطأ أن يتم تحقيق التابع ضمن الصف المجرد نفسه لأنه بذلك يصبح concrete class وإنما يتم التحقيق ضمن صف الابن بعد أن يسبق تعريف التابع بالكلمة المحجوزة override وإلا يعتبر صف الابن أيضاً مجرداً في هذه الحالة .

ومع أننا لا نستطيع تعريف أغراض من الصف المجرد إلا أنه بإمكاننا تعريف مؤشرات ومراجع من هذا الصف للصفوف الأبناء ويستفاد من ذلك كثيراً في تعددية الأشكال أو ال polymorphism