Тилига кириш услубий қўлланма


Хотиранинг объектлар ўртасида динамик тақсимланувчи соҳасига обьектларни жойлаштириш



Download 0,98 Mb.
bet67/91
Sana28.04.2022
Hajmi0,98 Mb.
#588113
1   ...   63   64   65   66   67   68   69   70   ...   91
Bog'liq
C

Хотиранинг объектлар ўртасида динамик тақсимланувчи соҳасига обьектларни жойлаштириш.


Худди бутун типли ўзгарувчини динамик хотирага жойлаштириш сингари ихтиёрий обьектни ҳам объектлар ўртасида динамик тақсимланувчи соҳалда жойлаштиришимиз мумкин. Масалан, агар сиз Cat синфи обьектини ҳосил қилиб, бу обьектни ўзгартириш учун унинг адресини ўзида сақловчи кўрсаткич тузишингиз мумкин. Бу ҳолат ўзгарувчини стекка жойлаштиришга ўхшаб қолади. Бу операцияни синтаксиси худди бутун сонли ўзгарувчи учун бўлганидек қуйидагичадир:
Cat * pCat= new Cat.
Бу ҳолатда new оператори синфни бошланғич конструкторини, яъни параметрсиз конструкторини чақиради. Объектни тузишда у стекда ёки динамик хотира соҳасида жойлаштирилишидан қатъий назар доимо у тегишли синф конструктори чақирилади.


Объектни динамик тақсимланувчи хотирадан ўчириш.


delete оператори ишлатилганда автоматик тарзда ундан кейин ёзилган кўрсаткичда адреси сақланувчи объект тегишли синф деструктори чақирилади. Қоида бўйича синф деструктори объектнинг динамик хотира соҳасида эгаллаган барча хотира соҳасини бўшатади. Объектни динамик хотирага жойлаштириш ва ўчиришга оид мисол 8.5- листингда кўрсатилган.
8.5. – листинг. Динамик хотира соҳасига объектларни жойлаштириш ва уларни ўчиришга оид мисол.

  1. // 8.5. – листинг.

  2. // Динамик тақсимланувчи соҳада объектларни

  3. //жойлаштириш ва ўчириш

  4. # inсlude


  5. class SimpleCat

  6. {

  7. public:

  8. SimpleCat();

  9. ~SimpleCat();

  10. private:

  11. int itsAge;

  12. }


  13. SimpleCat:: SimpleCat( )

  14. {

  15. cout<< “Contructor called .\n ”;

  16. itsYosh= 1;

  17. }

  18. SimpleCat:: ~ SimpleCat( )

  19. {

  20. cout <<”Destructor called .\n”;

  21. }

  22. int main()

  23. {

  24. cout << “Simple Cat Fricky… \n”;

  25. SimpleCat Frisky;

  26. cout << “SimpleCat *pRags = new SimpleCat… \n”;

  27. SimpleCat* pRags = new SimpleCat;

  28. cout<< “delete pRags… \n”;

  29. delete pRags

  30. cout<< “Exiting, watch Fricky go … \n”;

  31. return 0;

  32. }

НАТИЖА
SimpleCat Frisky…


Constructor called.
Simple Cat*pRags = new Simple Cat…
Construсtor called
delete pRags…
Destructor called
Exiting, wath Frisky go …
Destructor called.
ТАҲЛИЛ
6 – 13 – сатрларда оддий SimpleCat синфининг тавсифи берилган. Синф конструкторининг тавсифи 9 – сатрда, унинг танасининг тавсифи эса 15 – 19 – сатрларда берилган. Деструктор эса 10 – сатрда, унинг танаси эса 21 – 24 – сатрларда тавсифланган.
29 – сатрда бу синфнинг стекда жойлашувчи экземпляри тузилади. Бунинг учун SimpleCat синфининг конструктори ошкормас тарзда чақирилади. Синфининг иккинчи объекти 31 – сатрда тузилади. Бу ҳолда ҳам конструктор чақирилади. SimpleCat cинфининг деструктори 33 – сатрда pRags кўрсаткичи учун delete оператори қўлланилиши натижаси сифатида чақирилади. Функциядан чиқиш вақтида Frisky ўзгарувчиси кўриниш соҳаси чегарасидан чиқади ва унинг учун ҳам деструктор чақирилади.

Download 0,98 Mb.

Do'stlaringiz bilan baham:
1   ...   63   64   65   66   67   68   69   70   ...   91




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish