Texnik tizimlarda axborot texnologiyalari


Конструктор ва деструктор


Download 0.58 Mb.
bet8/11
Sana08.01.2022
Hajmi0.58 Mb.
#239993
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
AT mustaqil ish

Конструктор ва деструктор.

Структура ва бирлашмалар ўз конструктор ва деструкторларига эга бўлиши мумкин. Шу билан биргаликда бирлашмаларни синф сифатида ишлатишга маълум бир чекловлар мавжуд. Биринчидан, улар бирорта синф вориси бўлиши мумкин эмас, ўзлари ҳам бошқа синфлар учун она синф бўла олмайди. Улар static атрибутли аъзоларга, ҳамда конструктор ва деструкторли объектларга эга бўлиши мумкин эмас.

Бирлашмани синф сифатида ишлатилишига мисол кўрайлик

#include

union Bit { Bit(unsigned int n);

void Bit_Chop_Qilish(); unsigned int num;

unsigned char c[sizeof(unsigned int)]; };

Bit::Bit(unsigned int n){num = n;};

void Bit::Bit_Chop_Qilish( ){ int i,j;

for (j=sizeof(unsigned int)-1; j>=0; j--)

{ cout<<”Байтнинг иккилик кўриниши ”<

for (i=128; i; i>>=1)

{ if (i & c[j]) cout<<’1’; else cout<<’0’; } cout<

Bit.Bit_Chop_Qilish(); return 0; }

Объектни яратишда уни инициализациялаш керак. Бу мақсадда С++ тилида конструктор деб номланувчи махсус функция-аъзо аниқланган. Синф конструктори ҳар сафар синф объекти яратилиши пайтида чақирилади. Конструктор номи ўзи аъзо бўлган синф номи билан устма–уст тушади ва қайтарувчи қийматга эга бўлмайди.
Масала

#include

class Sinf { int var; public:

Sinf(); // Конструктор

void Chop_etish_var(); };

Sinf::Sinf(){ cout<< “Конструктор ишлади \n”;

var=0;} Sinf::Chop_etish_var(){cout<

int main()

{ Sinf ob; ob.Chop_Etish_var();

return 0;}



Инициализация

Бу мисолда Sinf конструктори экранга хабар чиқаради ва ёпиқ var ўзгарувчини инициализациялайди.

Шуни қайд этиш керакки, дастур тузувчи конструктор чақирадиган код ёзмаслиги керак. Барча зарур ишни компилятор амалга оширади. Юқорида қайд қилингандек конструктор у тегишли синф объекти яратилаётган пайтда чақирилади. Ўз навбатида объект бу объектни эълон қилувчи оператор бажарилишида яратилади. Шунинг учун ҳам С++ тилида ўзгарувчини эълон қилувчи оператор бажарилувчи оператор ҳисобланади.


Download 0.58 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling