** الوراثة Inheritance
تشكل الوراثة هيكل هرمي حيث يمثل صنف الأساس قمة الهرم فمثلاً .::
- الصيغة العامة للوراثة :
لجعل الصنف derived يرث الصنف Base :
تشكل الوراثة هيكل هرمي حيث يمثل صنف الأساس قمة الهرم فمثلاً .::
- الصيغة العامة للوراثة :
لجعل الصنف derived يرث الصنف Base :
كود
class derived : InheritanceType Base
ومثال ذلك :
class derived : InheritanceType Base
ومثال ذلك :
كود
#include
#include
using
#include
#include
using
حيّز الأسماء
',CAPTION,'Namespace',WRAP, TEXTFONTCLASS,'myText','purple');" onmouseout=nd(); href=""Namespace std;
class B
{
int i;
public:
void set_i(int);
int get_i();
};
class D:public B
{
int j;
public:
void set_j(int);
int multi();
};
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 ="<
system("PAUSE");
return 0;
}
فكما يظهر في هذا المثال البسيط الذي يضرب عددين مدخلين من قبل المستخدم ، في هذا المثال لدينا صنفين ( Class B, Class D ) ، وأن الصنف D يرث وراثة عامة Public من الصنف B كما ظهر في الشكل التالي :.
class B
{
int i;
public:
void set_i(int);
int get_i();
};
class D:public B
{
int j;
public:
void set_j(int);
int multi();
};
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 ="<
system("PAUSE");
return 0;
}
فكما يظهر في هذا المثال البسيط الذي يضرب عددين مدخلين من قبل المستخدم ، في هذا المثال لدينا صنفين ( Class B, Class D ) ، وأن الصنف D يرث وراثة عامة Public من الصنف B كما ظهر في الشكل التالي :.
كود
class D:public B
ومن خلال هذه العلاقة فإنه عندما نشتق كائن من الصنف D فإنه بإمكاننا أن نصل لكافة المتغيرات والدوال الموجودة في المستوى ( Protected , public ) في الصنف B ، ويوجد في الصنف D دالة ضرب العددين كما في الشكل التالي :.
class D:public B
ومن خلال هذه العلاقة فإنه عندما نشتق كائن من الصنف D فإنه بإمكاننا أن نصل لكافة المتغيرات والدوال الموجودة في المستوى ( Protected , public ) في الصنف B ، ويوجد في الصنف D دالة ضرب العددين كما في الشكل التالي :.
كود
int D::multi()
{
return get_i()*j;
}
فكما يظهر لدينا الدالة get_i() الموجودة في الصنف B تم التعامل معها هنا في الصنف D بدون أي إضافات .
int D::multi()
{
return get_i()*j;
}
فكما يظهر لدينا الدالة get_i() الموجودة في الصنف B تم التعامل معها هنا في الصنف D بدون أي إضافات .