Янги турдаги объект худди оддий бутун сонли ўзгарувчидек аниқланади. Ҳақиқатан ҳам ихтиёрий бутун сонли ўзгарувчи қуйидагича аниқланади:
unsigned int MyVariable
// ишорасиз бутун сонни аниклаймиз
Сat cинфидаги объект эса қуйидагича аниқланади:
Mushuk Frisky // Mushuk объектини аниклаймиз.
Бу дастурий кодларда unsigned int типидаги MyVariable номли ўзгарувчи ва Mushuk синфининг Frisky номли объекти аниқланди.
Кўпгина ҳолларда синф ва объект тушунчаларини ишлатишда чалкашликка йўл қўйилади. Шунинг учун, объект синфнинг бирор бир экземпляри (нусхаси) эканлигини яна бир бор таъкидлаш жоиз.
Синф аъзоларига мурожаат қилиш имкони.
Mushuk синфининг реал объектини аниқлаганимиздан сўнг бу объектнинг аъзоларига мурожаат қилиш зарурияти туғилиши мумкин. Бунинг учун бевосита мурожаат (.) оператори қўлланилади. Масалан, Frisky объектининг Weight ўзгарувчи - аъзосига 50 сонини ўзлаштирмоқчи бўлсак қуйидаги жумлани ёзишимиз лозим.
Fresky.Weight=50;
Meow() методини чақириш учун эса
Frisky.Meow();
жумласини ёзиш лозим.
Қиймат синфга эмас объектга ўзлаштирилади
С++ тилида берилганлар типига қиймат ўзлаштирилмайди. Қиймат фақатгина ўзгарувчиларга берилади. Масалан, қуйидаги ёзув нотўғридир:
Int=s // нотугри
Компилятор int типига қиймат ўзлаштирилиши хатолик эканлиги ҳақида хабар беради. Худди шу нуқтаи – назардан қуйидаги ёзув ҳам ноўриндир:
Cat.itsYosh= 5 // нотўгри
Агарда Mushuk объект бўлмасдан синф бўлса, юқоридаги ифодани ҳам компилятор хато деб ҳисоблайди. Ўзлаштириш амалини бажаришда хатоликка йўл қўймаслик учун олдин Mushuk синфига тегишли Frisky объектини ҳосил қилиш ва унинг ItsYosh майдонига 5 қийматини бериш лозим.
Mushuk Frisky;
Frisky.itsYosh=5;
Do'stlaringiz bilan baham: |