ملخصات وحدة ( 5 ) | برمجة 1

hmd-it
0

الوحدة الخامسة
الأصناف المشتقة و القوالب Derived Classes and Templates

Inheritance تعريف الوراثة
تعريف الوراثة : هي إمكانية أن يرث صنف ما الخصائص والعمليات الموجودة في صنف آخر ، مما يساعد على إعادة استخدام Reusability الأصناف التي تم إنشاؤها من قبل .

وبناء على هذا التعريف فإنه يمكن تحديد مفهومين جديدين وهما :
1- صنف القاعدة ( الأساس Or الموروث ) base class : وهو الصنف الذي يحوي البيانات والعمليات المراد توريثها لصنف آخر 
2- الصنف المشتق ( الوارث ) Derived class : وهو الصنف الوارث لخصائص وعمليات الصنف الأساس . 

Inheritance Types أنواع الوراثة 
توفر لغة C++ ثلاث أنواع من الوراثة حيث يحدد نوع الوراثة درجة الوصول للبيانات والعمليات الموجودة في صنف الأساس من خلال الصنف المشتق . والأنواع هي :
1- الوراثة الخاصة private Inheritance :
عندما يرث صنف مشتق صنف الأساس وكان نوع الوراثة خاص فإنه كل البيانات والعمليات الموجودة في صنف الأساس تصبح خاصة الصنف المشتق .
2-الوراثة المحمية protected Inheritance :
وفي هذا النوع تصبح كل بيانات وعمليات صنف الأساس محميّة بالصنف المشتق .
3- الوراثة العامة public Inheritance :
في هذا النوع يتم توزيع البيانات والعمليات كما يلي :
أ- المحمي protected في صنف الأساس base class يصبح محمي في الصنف المشتق .
ب- العام public في صنف الأساس يصبح عام في الصنف المشتق .
ج- الخاص لا يورّث أبدا ( البيانات الخاصة لا تورّث أبداً )! ..



تابع للمثال السابق
void B::set_i(int n)

{i=n;}
int B::get_i()
{
return i;
}
void D::set_j(int m)
{
j=m;}
int D::multi()
{
return get_i()*j;
}
int main()
{
int a,b;
cout<<"Enter A,B \n";
cin>>a>>b;
D ob;
ob.set_i(a);
ob.set_j(b);
cout<<"Multi ="<<ob.multi()<<endl;


دوال البناء والهدم تحت الوراثة

 Constructor And Destructor Functions Under Inheritance :

إن كلاً من الصنف الوارث والصنف الموروث يمكن أن يمتلكا دوال بناء ودوال هدم .


ملاحظات هامة:
1- دالة بناء الصنف الموروث تنفذ قبل دالة بناء الصنف الوارث .
2- دالة هدم الصنف الوارث تنفذ قبل دالة هدم الصنف الموروث .
3- لا يمكن توريث دوال البناء والهدم من الصنف الأساس إلى الصنف المشتق .
4- يتم إرسال المعاملات لدالة بناء الصنف الموروث من خلال دالة بناء الصنف الوارث باستخدام مهيء العضو ( : ) .
مثال على دوال البناء و الهدم

class point

{
public:
point ( int =0,int =0);
~point();
protected:
int x,y;
};
point::point(int a,int b)
{
x=a;
y=b;
cout<<"Point Constructor ["<<x<<','<<y<<']'<<endl;
}
point::~point()
{
cout<<"Point Destructor:["<<x<<','<<y<<']'<<endl;
system("PAUSE");
}

ملاحظة هامة عن المثال
( لاحظ هنا يتم أولاً تنفيذ دوال البناء كلها قبل تنفيذ أي دالة هدم قبل الخروج من المجال المحدد).
بعد ذلك يتم استدعاء دوال هدم الصنف الوارث قبل الصنف الموروث بترتيب معاكس بحيث الناتج النهائي للبرنامج بكامل مخرجاته ستكون على النحو التالي :

تحميل باقى الدرس ملف بوربونت
شرح د.سهى الأعرج

لاتنسى الاعجاب بصفحتنا وانضم الينا
||| لا تنسى الانضمام الى المدونة بالضغط هنا |||
اذا لديك أي سؤال، فلا تتردد في الاتصال بنا
.For any kind of question, please feel free to contact us.

HAMAD BASHIR
Tags:

إرسال تعليق

0تعليقات

اطرح اي سؤال خاص بالموضوع في التعليقات

إرسال تعليق (0)