9-мавзу. Объектга йўналтирилган дастурлаш



Download 24,54 Kb.
bet2/3
Sana23.02.2022
Hajmi24,54 Kb.
#119562
1   2   3
Bog'liq
9-мавзу

class non
{ int ogirlik ;
int baho ;
void yasash ( );
void yopish ( );
void eyish ( );
}
Синфни эълон қилишда хотира ажратилмайди. Синф эълон қилинганда компилятор фақат шундай (non) синф борлигини, ҳамда унда қандай қийматлар (оғирлик, баҳо) сақланиши мумкинлигини, улар ёрдамида қандай амалларни (ясаш, ёпиш, ёйиш) бажариш мумкинлиги ҳақида хабар беради. Бу синф объекти ҳаммаси бўлиб 4 байт жой эгаллайди (2 та int).
Объект синфнинг бирор бир нусхаси ҳисобланади.
C++ тилида тоифаларга қиймат ўзлаштирилмайди, балки ўзгарувчига ўзлаштирилади. Шунинг учун тўғридан-тўғри int=55 деб ёзиб бўлмаганидек non.баҳо=1200 деб ҳам бўлмайди. Ўзлаштиришда хатоликка йўл қўймаслик учун олдин non синфига тегишли patir объектини ҳосил қиламиз кейин эса унга керакли қийматларни берамиз.
Масалан:
int a; // butun toifali a o’zgaruvchisi, Obyekti
non patir; //
Endi non sinfining real Obyekti aniqlanganidan so’ng uning a’zolariga murojaat
patir.baho = 1200;
patir.ogirlik = 500;
patir.yasash ( ) ;
Sinfni e’lon qilishda quyidagilardan foydalaniladi:
public - ochiq
private – yopiq
Синфнинг барча усул ва аъзолари бошланғич ҳолда автоматик равишда ёпиқ бўлади. Ёпиқ аъзоларга эса фақат шу синфнинг усуллари орқалигина мурожаат қилиш мумкин. Объектнинг очиқ аъзоларига эса дастурдаги барча функциялар мурожаат қилиши мумкин. Лекин синф аъзоларига мурожаат қилиш анча мушкул иш ҳисобланади. Aгар тўғридан тўғри:
non patir;
patir.baho = 1200;
patir.og`irlik = 500; deb yozsak xato bo’ladi.
Aъзоларга мурожаат қилишдан олдин уни очиқ деб эълон қилиш керак:
# include < iostream.h >
class non
{ public :
int baho;
int ogirlik;
void yasash ( ); };
int main ( ){
non patir;
patir.baho = 1200; patir.ogirlik = 500;
cout <<“men olgan patir” <

cout <<“uning og’irligi =”<

3. Объектлар трассировкаси


Фойдаланувчи маълумотларни киритмагунча меню кутиб туради. Aгарда фойдаланувчи тўғри қийматни киритмаса, меню янгиланади, фойдаланувчи маълумотларни бошқатдан киритиши мумкин.
1 Қадам. Ўз объекттларингизнинг мажбуриятини белгиловчи рўйхат тузинг.
Фақат сизнинг топшириғингизни ечиш учун зарур бўлган функцияларни амалга оширинг. Реал нарсалар, масалан касса апарати ёки банк ҳисоб-рақами функциясини амалга ошириш учун ўн иккилик функциясидан фойдаланилади. Бироқ, сизнинг вазифанингиз реал дунёнинг моделини яратишдан иборат эмас. Сизнинг топшириғингизни ечиш учун зарур бўладиган вазифаларни аниқлаштириб олишингиз лозим.
Display the menu.(Menyu киритиш)
Get user input. (фойдаланувчидан кириш маълумотларини олиш)
Тавсиф муаммоси қисмига кирмайдиган яширин мажбуриятларга қаранг. Объект қандай яратилади? Қандай оддий фаолиятлар рўй бериши керак, ҳар бир савдони бошланишида касса апаратини тозалашга ўхшаш? Менюни тузишни меню яратиш мисолида кўриб чиқинг. Программист менюнинг бўш объектини яратади ва ундан сўнг “Янги аккаунт очиш”, “Ёрдам” опциясини қўшади. Бу ерда яширин мажбурият бор:
Menu main_menu;
main_menu.add_option("Open new account");
// Add more options
int input = main_menu.get_input();
Энди биз ўзига хос методлар рўйхатига эгамиз:
void add_option(string option)
int get_input() const
Меню чиқариш масаласичи? Менюни фойдаланувчидан маълумот киртишни сўрамасдан кўрсатишнинг маъноси йўқ. Aгар фойдаланувчи хато маълумот киритса get_input менюни бир мартадан ортиқ киритади. Шундай қилиб display хусусий метод учун яхши кандидатдир. Ижтимоий интерфейсни якунлаш учун сиз конструкторларни аниқлашингиз керак. Ўзингиздан сўранг объект яратиш учун сизга нима керак. Базан сиз 2 та конструкторга эхтиёж сезасиз: бири ҳамма элементлар учун default иккинчиси эса фойдаланувчи томонидан киритилган қийматларни ўрнатади. Меню мисолида биз бўш меню яратувчи ягона конструктор билан кифояланамиз.
3. Нусхалаш конструктори
Векторлар объектида паралел векторларни ярантинг. Баъзида, бир хил узунликдаги векторларни ишлатётганингизни англайсиз, ҳар бир сақлайдиган қисми объект ҳисобланади. Бу вазиятда, дастурингизни қайта яратиш ва элементлари объект саналадиган ягона вектордан фойдаланиш яхши фикрдир.
Масалан, фараз қилайлик ҳисоб рақами бир қатор тавсиф ва нархлардан иборатдир. Ягона ечим иккита векторни сақлаб туришдир:

Download 24,54 Kb.

Do'stlaringiz bilan baham:
1   2   3




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