Объектга йўналтирилган программалаш
Download 0.58 Mb.
|
С ОЙП
- Bu sahifa navigatsiya:
- include
#include class Nuqta { 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(2*_x, 2*_y){}; void Qiymat_XX(){cout< void Qiymat_YY(){cout< }; main() { Dekart * dkt; dkt=new Dekart(10,15);// объектни уюмда яратиш dkt-> Qiymat_XX(); dkt-> Qiymat_YY(); delete dkt; // объектни уюмдан ўчириш return 0; } Ушбу программада Dekart ҳосилавий синфи ягона Nuqta таянч синфига эга. Конструктор ворислик бўйича ўтмаганлиги сабабли, ворис синфда конструктор синтаксиси ўзгарган. Маълумки, ворис синф таянч синфнинг барча берилганларини ворислик бўйича олади (гарча таянч синфнинг айрим аъзоларига тўғридан – тўғри мурожаат қила олмаса ҳам) ва синф объекти аниқланишида бу берилганлар инициализация қилиниши керак. Чунки, ворис синфда бу берилганлар ишлатилиши мумкин. Шу сабабли ҳосилавий синф конструктори қуйидаги тузилма кўринишида аниқланади: <ҳосилавий синф конструктори>(<параметрлар рўйхати>) : <таянч синф конструктори>(<аргументлар рўйхати>) {<конструктор танаси>} Конструкторда таянч синф конструкторига кўрсатувчи элементларни инициализациялаш рўйхатидан фойдаланилган. Ворис синф конструкторига узатилган аргументларнинг маълум бир қисми таянч синф конструкторига аргумент сифатида узатилади. Кейин ворис синф конструктори танасида айни шу синф учун зарур инициализация амалларини бажарилиши мумкин. Юқорида келтирилган мисолда Dekart ворис синфи конструктори Dekart (int _x, int _y): Nuqta(2*_x, 2*_y){}; кўринишида аниқланган. Ворис синф объектини инициализация учун узатилган аргументлар иккига кўпайтирилган ҳолда таянч синф берилганлар-аъзоларини инициализациялаш учун ишлатимоқда. Конструктор танаси бўш, чунки бу синф ўз берилганларига эга эмас. Агар ворис синф констуктори параметрсиз аниқланган бўлса, яъни келишув бўйича конструктор бўлса, ҳосилавий синф объекти яратилишида таянч синф конструктори автоматик равишда чақирилади. Ҳосилавий синф деструкторига нисбатан қуйидаги қоида амал қилади: ҳосилавий синф конструктори таянч синф деструкторидан олдин ишлаши керак. Акс ҳолда таенч синф деструктори айни пайтда ишлатилаётган ҳосилавий синф берилганлар–аъзоларини ўчириши мумкин. Деструкторлар тўғри ишлашини компилятор ўз зиммасига олади. Қуйида келтирилган программада таянч ва ворис синфлар конструкторлари ва деструкторларининг ишлаш кетма-кетлиги кўрсатилган. #include Download 0.58 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling