Сайфиев ж. Ф. С++ тилига кириш услубий қўлланма


Синф аъзоларига мурожаат қилиш имкони



Download 3,43 Mb.
bet40/79
Sana09.07.2022
Hajmi3,43 Mb.
#767124
1   ...   36   37   38   39   40   41   42   43   ...   79
Bog'liq
C dan uslubiy qulanma

Синф аъзоларига мурожаат қилиш имкони.


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;


Синф аъзоларига мурожаат қилиш

имконини чегаралаш.


Синфни эълон қилишда бир нечта калит сўзлардан фойдаланилади. Улардан энг муҳимлари publiс (очиқ) ва private (ёпиқ) калит сўзлари бўлиб, улар орқали объектнинг аъзоларига мурожаат қилиш имконияти чегараланади.
Синфнинг барча методлари ва хоссалари бошланғич ҳолда ёпиқ деб эълон қилинади. Ёпиқ аъзоларга фақатгина шу синфнинг методлари орқалигина мурожаат қилиш мумкин. Объектнинг очиқ аъзоларига эса дастурдаги барча функциялар мурожаат қилишлари мумкин. Синф аъзоларига мурожаат қилиш имконини белгилаш жуда муҳим хусусият бўлиб, бу масалани ечишда унча катта тажрибага эга бўлмаган дастурларчилар кўпинча қийинчиликларга дуч келадилар. Бу ҳолатни батафсилроқ тушунтириш учун мавзуни бошида келтирилган масаламизга қайтамиз.
Class Mushuk
{
unsigned int itsYosh;
unsigned int itsOgirlik;
void Miyovlash();
}
Бу тарзда синфни эълон қилишда itsYosh ва itsOgirlik майдонлари ҳам, Miyovlash() методи ҳам ёпиқ аъзо сифатида аниқланади. Дастурда юқоридаги тартибда Mushuk синфи эълон қилинган бўлса ва бу синф экземпляри бўлган объектнинг itsYosh аъзосига main() функцияси танасидан туриб мурожаат қилсак компилятор хатолик рўй берганлиги ҳақида хабар беради.
Mushuk Baroq;
Baroq.itsYosh = 5 // Хатолик!
// Ёпик аъзога мурожаат килиш мумкин эмас.
Mushuk синфи аъзоларига дастурнинг бошқа объектлари томонидан мурожаат қилиш имконини ҳосил қилмоқчи бўлсак, уни public калитли сўзи орқали амалга оширамиз.
Class Mushuk
{
public:
unsigned int itsYosh;
unsigned int itsOgirlik;
void Meow( );
}
Энди public калитли сўзи орқали синфнинг барча аъзолари (itsYosh, itsOgirlik, Miyovlash()) очиқ аъзо бўлди.
6.1 – листингда Mushuk синфи очиқ ўзгарувчи аъзолари билан эълон қилинган.
6.1. – листинг. Оддий синфнинг очиқ аъзосига мурожаат.
# include < iostream.h >;
class Mushuk;
{
public:
int itsYosh;
int itsOgirlik;
}
int GetYosh(); // Inlizchada Get– olmoq
void SetYosh (int Age); //Set – o`zgartirmoq
void Miyovlash();
рrivate:
int itsYosh;

int main()


{
Mushuk Frisky;
Frisky.itsYosh= 5;
// ўзгарувчи – аъзога киймат ўзлаштирилди.
cout << “Frisky ” <cout <<“ yoshdagi mushuk.\n”;
return 0;
}
НАТИЖА:

Download 3,43 Mb.

Do'stlaringiz bilan baham:
1   ...   36   37   38   39   40   41   42   43   ...   79




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