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


– листинг. Кўрсатгичлар ёрдамида объектларни ҳавола кўринишда узатиш



Download 1,12 Mb.
bet80/86
Sana21.03.2022
Hajmi1,12 Mb.
#505048
1   ...   76   77   78   79   80   81   82   83   ...   86
Bog'liq
C qo`llanma

9.10. – листинг. Кўрсатгичлар ёрдамида объектларни ҳавола кўринишда узатиш.

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

  2. // Объектга кўрсатгичларни узатилиши


  3. #include


  4. class SimpleCat

  5. {

  6. public:

  7. SimpleCat(); //конструктор

  8. SimpleCat(Simple Cat&);//кўчирувчи- конструктор

  9. ~SimpleCat(); //деструктор

  10. }


  11. SimpleCat: : SimpleCat()

  12. {

  13. cout << “ Simple CatConstructor … \ n” ;

  14. }


  15. SimpleCat::SimpleCat(SimpleCat& )

  16. {

  17. cout<<“Simple CatCopy Constructor…\ n” ;

  18. }


  19. SimpleCat::~SimpleCat( )

  20. {

  21. cout << “SimpleCat Destructor …\ n” ;

  22. }


  23. SimpleCat FunctionOne (SimpleCat theCat) ;

  24. SimpleCat* FunctionTwo (SimpleCat *theCat) ;


  25. int main()

  26. {

  27. cout <<“Making a Cat…\ n” ;

  28. SimpleCat Frisky ;

  29. cout<< “Calling FunctionOne…\ n” ;

  30. FunctionOne(Frisky) ;

  31. cout<<“Calling FunctionTwo …\ n” ;

  32. FunctionTwo(&Frisky)

  33. return 0;

  34. }


  35. //FinctionOne функциясига қиймат сифатида узатилаяпти

  36. SimpleCatFunctionOne ( SimpleCat theCat)

  37. {

  38. cout << “FunctionOne Returning …\ n” ;

  39. return theCat;

  40. } ;


  41. //FinctionTwo функциясига ҳавола сифатида узатилаяпти

  42. SimpleCat* FunctionTwo ( SimpleCat* theCat)

  43. {

  44. сout << “ Function Two. Returning …\ n” ;

  45. return tneCat;

  46. }

HАТИЖА:
Making a Cat…
Simple CatConstructor …
Calling FunctionOne …
Simple CatCopy Constructor …
FunctionOne returning …
Simple CatCopy Constructor …
Simple CatDestructor …
Simple CatDestructor …
Calling FunctionTwo …
FunctionTwo Returning …
Simple CatDestructor …

ТАҲЛИЛ
6 – 12 – сатрларда жуда ҳам соддалаштирилган SimpleCat синфи эълон қилинаяпти. Синфнинг барча компонентлари – конструктор, конструктор – кўчирувчи ва деструкторлар таналарида экранга ахборот чиқарувчи фрагмент аниқланган бўлиб, бу орқали улар қачон чақирилганини билиб олиш мумкин бўлади.


34–сатрда main() функцияси ўзининг биринчи ахборотини экранга чиқаради. 35–сатрда эса SimpleCat синфининг экземпляри тузилади. Бу эса ўз навбатида SimpleCat синфининг конструкторини чақиради. Конструктор чақирилганда бу ҳақида экранга ахборот чиқарилади.
36 – сатрда main() функцияси FunctionOne функцияси чақирилганлиги ҳақида хабар чиқаради. FunctionOne() функциясига SimpleCat синфи объекти қиймат сифатида узатилади ва бунинг натижасида чақириладиган функция учун локал бўлган SimpleCat объекти нусхаси стекда жойлаштирилади. Бу ҳолда кўчирувчи конструктор чақирилади.
Дастурнинг бошқаруви чақирилган функцияни танаси ҳисобланган 46 – сатрга ўтади. Кейин эса бу функция чақирган функцияга бошқарувни беради ва SimpleCat синфи объекти яна қиймат сифатида қайтарилади. Бу ҳолда конструктор–кўчирувчини чақириш орқали яна битта объект нусхаси тузилади ва экранга навбатдаги хабар чиқарилади.
FunctionOne() функцияси қайтарган қиймат бирор бир объектга ўзлаштирилмайди ва функциянинг қиймат қайтариш механизмининг реализациясида ҳосил қилинган вақтинчалик объект умуман фойдаланилмасдан ўчирилади. Чунки FunctionOne() функцияси ишини тугатиши билан унинг локал объектлари хотирадан ўчирилади.
Дастурнинг бошқаруви яна main() функциясига қайтгандан сўнг FunctionTwo() функцияси чақирилади. Унга параметр ҳавола кўринишида узатилади. Шунинг учун унинг ишлаши давомида объектнинг ҳеч қандай нусхаси ҳосил бўлмайди ва ўз навбатида конструктор – кўчирувчи ҳам, деструктор ҳам чақирилмайди.
Ушбу дастурнинг ишини таҳлил қилсак, FunctionOne() функцияси чақирилганда кўчирувчи – конструкторга икки марта, деструкторга икки марта ҳавола қилинади, агарда объект ҳавола кўринишида узатилса бундай мурожаатлар бўлмас экан.



Download 1,12 Mb.

Do'stlaringiz bilan baham:
1   ...   76   77   78   79   80   81   82   83   ...   86




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