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


Қачон ҳаволаларни, қачон эса кўрсатгичларни ишлатиш лозим


Download 1.05 Mb.
bet83/86
Sana28.10.2023
Hajmi1.05 Mb.
#1730826
1   ...   78   79   80   81   82   83   84   85   86
Bog'liq
C qo`llanma

Қачон ҳаволаларни, қачон эса кўрсатгичларни ишлатиш лозим.


Малакали мутахассисликлар ҳаволаларини қўллашни кўрсатгичларни қўллашдан афзал билишади. Ҳаволаларни ишлатиш осон ва улар масалани ечишда ахборотларни қисқартиришга олиб келади.


Лекин ҳаволаларга қиймат бериш мумкин эмас. Агарда сизга олдин бир, кейин эса бошқа объектни кўрсатиш лозим бўлса у ҳолда албатта кўрсатгичлардан фойдаланишга тўғри келади.
Ҳаволалар нол қийматни қабул қилмайди. Шунинг учун қаралаётган объектнинг нол бўлиб қолиш эҳтимоли мавжуд бўлса ҳам ҳаволаларни ишлатиш мумкин эмас. Бу ҳолда ҳам кўрсатгичлар ишлатилиши керак.
Мисол сифатида new операторини қараймиз. Агарда new оператори янги объект учун хотирадан жой ажратмаса у нол кўрсатгични қиймат сифатида қайтаради. Ҳавола нол бўлмаслигидан, хотиранинг нол эмаслигини текширмасдан, унга бу хотирага ҳаволани ўзлаштиришингиз мумкин эмас.
Қуйидаги мисолда бу ҳолат қандай текширилиши кўрсатилган.
int * pInt = new int
if (pInt! = null)
int & rInt =* pInt;

Бу мисолда new оператори қайтарадиган хотира соҳасини int типдаги қийматли pInt кўрсатгичи ўзлаштирилади. Бу хотира соҳасининг адреси текширилади ва агарда у null қийматига тенг бўлмаса pInt кўрсатгич адресидаги қиймат rInt ҳаволага ўзлаштирилади.


САВОЛЛАР:
1. Нима учун ҳаволалар қўлланилади?
2. Ҳаволалар билан ишлаш осон бўлса кўрсатгичлар нима учун керак?
3. Агарда янги объект тузиш учун хотира етишмаса new оператори қандай қиймат қайтаради?
4. Ўзгармас ҳавола нима ва у нима мақсадда ишлатилади?
5. Функцияга объектни ҳавола сифатида узатиш билан қиймат сифатида узатишни нима фарқи бор?

ТАЯНЧ ИБОРАЛАР


Ҳавола, объектни ҳавола сифатида узатиш, ўзгармас ҳавола, конструктор – кўчирувчи, объект нусхаси

АДАБИЁТЛАР


1. Жесс Либерти, “Освой самостоятельно С++ за 21 день”, Санкт Петербург 2000, 815 с.



Download 1.05 Mb.

Do'stlaringiz bilan baham:
1   ...   78   79   80   81   82   83   84   85   86




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