class Tayanch
{
public:
Tayanch()
{cout<<”Tayanch sinf konstruktori ishladi.\n” }
~Tayanch()
{cout<<”Tayanch sinf destruktori ishladi.\n” }
};
class Hosila : public Tayanch
{
public:
Hosila()
{cout<<”Hosila sinf konstruktori ishladi.\n” }
~Hosila()
{cout<<”Hosila sinf destruktori ishladi.\n” }
};
int main()
{
Hosila ob;
return 0;
}
Программа ишлаши натижасида экранга қуйидаги хабарлар чиқади:
Tayanch sinf konstruktori ishladi.
Hosila sinf konstruktori ishladi.
Hosila sinf destruktori ishladi.
Tayanch sinf destruktori ishladi.
Кўп ҳолларда ҳосилавий синфда таянч синф аъзоларига янги аъзолар қўшилади. Бироқ таянч синф аъзоларини қайта аниқлаш имконияти мавжуд. Одатда таянч синф функция –аъзолари қайта аниқланади. Бунинг учун таянч синф функция–аъзосини ҳосилавий синф эълони прототипини бериш ва кейин уни аниқлаш етарли. Мисол тариқасида Nuqta таянч синфда аниқланган X_Qiymati() ва Y_Qiymati() функцияларини қайта аниқлашни қарайлик:
#include
class Nuqta
{
protected:
int x,y;
public:
Nuqta(int _x, int _y){x=_x; y=_y;}
Nuqta(){x=0; y=0;}
int X_Qiymati(){return x;}
int Y_Qiymati(){return y;}
void Qiymat_X(int _x){x= _x;}
void Qiymat_Y(int _y){y= _y;}
};
class Dekart : public Nuqta
{
public:
Dekart (int _x, int _y): Nuqta(_x, _y){};
int X_Qiymati(){return ++x;}
int Y_Qiymati(){return ++y;}
void Qiymat_XX(){cout<
Do'stlaringiz bilan baham: |