Sinflardagi ichki malumotlar turlari.
![Samarqand Davlat Universiteti,
Raqamli Texnologiyalar Fakulteti,
Intel lektual tizimlar va kompyuter
texnalogiyalari yo’nalishi
205 -guruh talabasi
Bobomalikov Abdujalil ning
Dasturlash asoslari fanidan bajargan
MUSTAQIL ISHI
Qa bul qildi: Davirov B.](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_1.png)
![Mavzu: S inflardagi ichki malumotlar turlari .
Reja:
1. Sinf ma'lumotlar turi .
2. Sinf ta'rifi .
3. Ma'lumotni yashirish (inkapsulyatsiya) .
4. Sin f a'zolarida global ruxsat operatoridan foydalanish .
5. Kirish modifikatorlari .
6. Xulosa .
7. Foydalanilgan adabiyotlar.](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_2.png)
![1. ma'lumotlar turi klassi
Ob'ektga yo'naltirilgan yondashuv tushunchalari haqida dastlabki fikr -mulohazalar
bildirganimizdan so'ng, sinflarning C++ tilida amalga oshirilishini aniq ko'rib
chiqishga o'tamiz.
Birinchidan, biz sarl avha fayliga joylashtirilishi mumkin bo'lgan sinf ta'riflarining eng
oddiy misolini ko'rib chiqamiz. Bu, odatda, agar sinflar dasturning bir nechta
modullarida mavjud bo'lishi kerak bo'lsa, amalga oshiriladi. Shuni esda tutish
kerakki, sinf ma'lumotlar tur i tushunchasining kengaytmasi, to'g'rirog'i, struktura
tushunchasi. C++ tilida faqat turlar haqida gapirish odatiy holdir; sinf vakili endi
shunchaki ma'lumot deb hisoblanmaydi, chunki ba'zi xatti -harakatlar unga xosdir.
Qaysidir ma'noda ob'ekt mavjudlikd ir. Dastur odatda xodimlar, kitoblar va hatto
fayllar kabi turli xil real hayot ob'ektlari haqidagi ma'lumotlarni saqlash uchun
o'zgaruvchilardan foydalanadi. Ob'ektga yo'naltirilgan dasturlashda siz tizimni
tashkil etuvchi narsalarga va bu narsalarda baja rishingiz kerak bo'lgan
operatsiyalarga e'tibor qaratasiz. Masalan, fayl ob'ekti uchun faylni chop etish,
ko'rsatish yoki o'zgartirish operatsiyalariga ega bo'lishingiz mumkin. C++ da siz
ma'lumotlar turini yaratishingiz mumkin - ob'ektlaringizni aniqlash uchun sinf.
Sizning maqsadingiz sinfga kerak bo'lganda ob'ekt haqida ko'proq ma'lumot
kiritishdir. Shunga asoslanib, siz bitta dastur uchun yaratilgan sinfni olishingiz va uni
bir nechta turli dasturlarda ishlatishingiz mumkin.
2. Sinf ta'rifi
Sinf sizning dasturlaringizga ob'ekt xususiyatlarini belgilaydigan ma'lumotlarni va
ushbu ma'lumotlar ustida operatsiyalarni bajaradigan funktsiyalarni birlashtirishga
imkon beradi. Ob'ektga yo'naltirilgan dasturlash adabiyotlarida sinfning
funktsiyalari usullar yoki f unksiya a'zolari, ma'lumotlar esa maydonlar yoki
ma'lumotlar a'zolari deb nomlanishi mumkin. Struktura singari, C++ klassi ham
noyob nomga ega boʻlishi kerak, undan keyin ochiladigan jingalak qavs, bir yoki bir
nechta maʼlumotlar va funksiya aʼzolari va yo pilish jingalak qavs mavjud:
class class_name {
int data_member; // Элемент данных](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_3.png)
![void show_member(int); // Функция -элемент
};
Sinf aniqlangandan so'ng, siz quyida ko'rsatilganidek, ushbu sinf turidagi
o'zgaruvchilarni (ob'ektlar deb ataladigan) e'lon qilishingiz mumkin:
class_name object_one, object_two, object_three ;
Quyidagi ta'rif ma'lumotlar va usullar ta'riflarini o'z ichiga olgan xodimlar sinfin i
yaratadi:
class employee {
public:
char name[64];
long employee_id;
float salary;
void show_employ ee(void)
{
cout << RUS(" Имя : ") << name << endl;
cout << RUS(" Номер служащего : ") << employee_id
<< endl;
cout << RUS(" Оклад : ") << salary << endl;
};
};
Bunday holda, sinf uchta o'zgaruvchi va bitta a'zo funksiyani o'z
ichiga oladi. Sinf ta'rifi ichida umumiy yorliqdan foydalanishga
e'tibor bering. Keyincha lik bilib olasiz, sinf a'zolari shaxsiy
(xususiy) yoki ommaviy (ommaviy) bo'lishi mumkin, bu sizning
dasturlaringiz sinf a'zolariga qanday kirishini belgilaydi. Bu holda](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_4.png)
![barcha elementlar umumiy bo'lib, ya'ni dastur nuqta operatori
yordamida istalgan eleme ntga kirishi mumkin. Dasturingiz ichida
sinfni aniqlaganingizdan so'ng, quyida ko'rsatilganidek, ushbu sinf
turidagi ob'ektlarni (o'zgaruvchilarni) e'lon qilishingiz mumkin:
em ployee worker, boss, secretary; // Переменные
(объекты ) класса employe e
Quyidagi EMPCLASS.CPP dasturi ikkita xodim ob'ektini, ishchi va xo'jayinni yaratadi.
Nuqta operatoridan foydalanib, dastur ma'lumotlar elementlariga qiymatlarni
belgilaydi. Keyin dastur xodimlar haqidagi ma'lumotlarni ko'rsatish uchun
show_emplo yee usulidan foydalanadi.
class employee
{
public:
char name[64];
long employee_id;
float salary;
void show_employee(void)
{
cout << RUS(" Имя : ") << name << endl;
cout << RUS(" Номер служащего : ") << employee_id
<< endl;
cout << RUS(" Оклад : ") << salary << endl;
};
};
employee worker, boss;](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_5.png)
![strcpy(worker.name, "John Doe");
worker. employee_id = 12345;
worker.salary = 2500;
strcpy(boss.name, "Happy Jamsa");
boss.employee_id = 101;
boss.salary = 101101.00;
worker.show_employee();
boss.show_employee() ;
Sinf ma'lumotlari:
bir xil sinf turidan boshqa har qanday turdagi bo'lishi mumkin (lekin bu sinfga
ko'rsatgichlar y oki havolalar bo'lishi mumkin);
const modifikatori bilan tasvirlanishi mumkin, shu bilan birga ular faqat bir marta
ishga tushiriladi (konstruktor yorda mida) va o'zgartirib bo'lmaydi;
statik modifikator bilan e'lon qilinishi mumkin, lekin auto, e xtern va registr sifatida
emas.
Sinfni t avsiflashda ma'lumotlarni ishga tushirishga ruxsat berilmaydi.](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_6.png)
![Sinflar global (har qanday blokdan tashqarida e'lon qilingan) va mahalliy (blok
ichida e'lon qilingan, masalan, funktsiya yok i boshqa sinf) bo'lishi mumkin.
Quyida mahalliy sinfning ayrim xususiyatlari keltiri lgan:
mahalliy sinf ichida siz turlarni, statik (statik) va tashqi (tashqi) o'zgaruvchilarni,
tashqi funktsiyalarni va tavsiflangan doiradagi ro'yxatga olish elementlarini
ishlatishingiz mumkin; bu hududdan avtomatik o'zgaruvchilardan foydalanish
taqiqlanadi;
mahalliy sinfda stati k a'zolar bo'lishi mumkin emas;
bu sinfning usullari faqat sinf ichida e'lon qilinishi mumkin;
agar bir sinf boshqa sinf ichida joylashgan bo'lsa, ular bir -birining elementlariga
maxsus kirish huquqiga ega emas va ularga faqat umumiy qoidal arga muvofiq
kirishlari mumkin.
Sinfdan tas hqari sinf usullarini belgilash
Oldingi xodimlar sinfida funktsiya sinfning o'zida aniqlangan (inline funktsiya).
Funktsiyalar o'sishi bilan sinf ichidagi o'rnatilgan funktsiyal arni belgilash sinf
tavsifini buzishi mumkin. Shu bilan bir qatorda, funksiyaning prototipini sinf ichiga
joylashtirishingiz va keyin funksiyani sinfdan tashqarida belgilashingiz mumkin.
Prototipli sinf ta'rifingiz quyidagicha bo'ladi
class employee
{ public:
char name[64];
long employee_id;
float salary;
void show_employee(void); // Прототип функции
};
Turli sinflar bir xil nomdagi funksiyalardan foydalanishi mumkinligi sababli, sinfdan
tashqarida aniqlangan funksiyalar nomlariga sinf nomi va global rezolyutsiya
operatori (::) bilan old qo'yish kerak. Bunday holda, funktsiya ta'rifi quyidagicha
bo'ladi:](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_7.png)
![void employee::show_employee (void)
{
cout << RUS(" Имя : ") << name << endl;
cout << RUS(" Номер служащего : ") << employee_id
<< endl;
cout << RUS(" Оклад : ") << salary << endl;
}
Ko'rib turganingizdek, yuqoridagi koddan oldin sinf nomi (xodim) va global ruxsat
operatori (::) bilan funksiya ta'rifi mavjud. Keyingi dastur - CLASSFUN. CPP
show_employee funksiyasining ta'rifini sinfdan tashqarida joylashtiradi va sinf
nomini belgilash uchun global rezolyutsi ya operatoridan foydalanadi. Bu
funktsiyani asosiy funktsiyadan tashqariga ko'chirishni talab qiladi. Shuning uchun
biz dasturning ikkita qismini tanlaymiz - asosiy funktsiyadan oldin va keyin:
1-qism:
// Здесь могут вводится функции и классы пользователя
class employee
{
public:
char name[64];
long employee_id;
float salary;
void show_employee(void); // Прототип функции
};](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_8.png)
![void employee::show_employee(void)
{
cout << RUS(" Имя : ") << name << endl;
cout << RUS(" Номер служащего : ") << employee_ id
<< endl;
cout << RUS(" Оклад : ") << salary << endl;
// Здесь введите свою программу , например :
employee worker, boss ;
strcpy(worker.name, "John Doe");
worker. employee_id = 12345;
worker.salary = 2500;
strcpy(boss.name, "Happy Jamsa");
boss.employee_id = 101;
boss.salary = 101101.00;
worker.show_employee();
boss.show_employee();
3. Ma'lumotni yashirish (inkapsulyatsiya)
Ma'lumki, sinf ma'lumotlar va usullarni (funktsiyalarni) o'z ichiga oladi. Sinfdan
foydalanish uchun dasturlar sinf saqlaydigan ma'lumotni (uning ma'lumotlar
a'zolari) va ma'lumotlarni (funktsiyalarni) boshqaradigan usullarni bilishi kerak.](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_9.png)
![Ilova dasturlaringiz usullar qanday ishlashini bilishi shart emas. Bundan tashqari,
dasturlar faqat usullar qanday vazifani bajarishini bilishi kerak. Masalan, sizda fayl
sinfi bor deylik. Ideal holda, sizning dasturlaringiz faqat ushbu sinf joriy faylning
formatlangan nusxasini chop etadigan flle.print yoki faylni o'chiradigan file.delete
usullarini taqdim etishini bilishi kerak. Sizning dasturingiz bu ikki usul qanday
ishlashini bilishi shart emas. Boshqacha qilib aytganda, dastur sinfga "qora quti"
sifatida qarashi kerak. Dastur sin f ob'ektlari ustida amallarni bajarishda qanday
usullarni chaqirish va ularga qanday parametrlarni o'tkazish kerakligini biladi, lekin
dastur sinf ichida ("qora qutida") bajariladigan haqiqiy ish haqida hech narsa
bilmaydi. Ma'lumotni yashirish - bu dastur ga sinfdan foydalanish uchun zarur
bo'lgan minimal ma'lumotni taqdim etish jarayonidir. Oldingi dasturlarda siz
yaratgan har bir sinf sinfning barcha a'zolarini ochiq, ya'ni butun dasturga
ko'rinadigan deb e'lon qilish uchun umumiy belgidan foydalangan. Sh unday qilib,
dastur nuqta operatori yordamida sinfning istalgan a'zosiga bevosita kirishi
mumkin edi:
class employee
{
public:
char name[64];
long employee_id;
float salary;
void show_employee(void);
};
employee worker, boss;
worker.salary = 25000 ;
Sinf yaratganingizda, qiymatlari faqat sinf ichida ishlatiladigan va dasturning o'z i
kirishi shart bo'lmagan elementlarga ega bo'lishingiz mumkin. Bunday elementlar
shaxsiy (shaxsiy) bo'lib, ular dasturdan olib tashlanishi kerak. Agar siz umumiy
yorliqdan foydalanmasangiz, sukut bo'yicha C++ sinfning barcha a'zolari shaxsiy deb
hisoblayd i. Ilova dasturlaringiz nuqta operatoridan foydalangan holda sinfning](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_10.png)
![shaxsiy a'zolariga kira olmaydi. Sinfning shaxsiy a'zolariga faqat sinf a'zolarining o'zi
kirishi mumkin. Sinf yaratishda siz quyida ko'rsatilgandek a'zolarni shaxsiy va
umumiyga ajratis hingiz kerak:
class some_class
{
public: // Общие
элементы
int some_variable;
void initialize_private(int, float);
void show_data(void);
private: // Частные
элеме нты
int key_value;
float key_number;
};
4. Sinf a'zolarida global ruxsat operatoridan foydalanish
Agar siz INFOHIDE.CPP dasturidagi funksiyalarni ko‘rib chiqsangiz, quyida
ko‘rsatilganidek, funksiya parametrlari nomlari ko‘pincha emp_ belgilar bilan
ol dindan belgilanishini ko‘rasiz:
int xodimi :: assign_values (char *emp_name, long emp_id, float emp _maosh)
Em_ belgilari funksiya parametrlari nomlari va sinf aʼzolari nomlari oʻrtasidagi
ziddiyatni oldini olish uchun ishlatilgan.](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_11.png)
![Sinf aʼzosi funksiyalarini yaratishda funksiya ichida ishlatadigan mahalliy
oʻzgaruvchi nomi sinf aʼzosi nomiga zid keladi gan holatlar boʻlishi mumkin.Sukut
boʻyicha mahalliy oʻzgaruvchi nomi sinf aʼzosi nomini bekor qiladi. Bunday nom
ziddiyatlari yuzaga kelganda, funktsiya sinf a'zolariga kirish uchun sinf nomi va
global rezolyutsiya operatoridan (::) foydalanishi mumkin:
int employee::assign_values( char *name, long
employee_id, float salary)
{
strcpy ( employee :: name , name ) ;
employee :: employee_id = employee_id;
if (salary < 50000.0)
{
employee::salary = salary;
return(0); // Успешно
}
else
return( -1); // Недопустимый оклад
}
Sinf a'zolarida ishlaydigan funksiyalarni yaratishda nomlash ziddiyatlarining oldini
olish uchun sinf nomi va global rezolyutsiya operatoridan foydalanish kerak.
Maxs us funktsiyalar - sinf a'zolari
Maxsus a'zo funktsiyalari kompilyator tomonidan bilvosita chaqirilishi mumkin
bo'lgan funktsiyalardir. Bu sinf vakillari yaratilganda va yo'q qilinganda, ular](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_12.png)
![nusxalanganda va boshqa turlarga aylantirilganda sodir bo'lishi mumkin. Bu
xususiyatlarga quyidag ilar kiradi:
Konstruktor. S inf a'zolarini ishga tushiradi.
nusxa ko'chirish konstruktori. Mavjud qiymatlardan foydalangan holda sinfning
yangi a'zosini ishga tushiradi.
tayinlash operatsiyasi. Bir sinf a'zosining m azmunini boshqasiga tayinlaydi.
Destru ktor. Yo'q qilinayotgan ob'ektdan xotir ani tozalashni amalga oshiradi.
operatsiya yangi. Dinamik ravishda yaratilga n ob'ekt uchun xotira ajratadi.
operatsiyani o'chirish. Dinamik ob'ekt uchun ajratilgan xotirani chiqaradi.
5. Kirish modifikatorlari .
Ma'lumotlarni yashirish deb nomlanuvchi ob'ektga yo'naltirilgan dasturlashning
muhim jihatini amalga oshirish uchun ishl atiladi. Haqiqiy hayot misolini ko'rib
chiqing:
10 ta asosiy a'zoga ega bo'lgan tadqiqot va tahlil qanoti (R&AW) milliy xavfsizlikka
oid maxfiy ma'lumotlarga ega bo'ldi. Endi biz ushbu asosiy a'zolarni ma'lumotlar
a'zolari yoki sinfning a'zo funktsiyalari bilan bog'lashimiz mumkin, bu esa o'z
navbatida R&A Wing bilan bog'lanishi mumkin. Ushbu 10 a'zo o'z qanotidan (sinf)
maxfiy ma'lumotlarga to'g'ridan -to'g'ri kirishi mumkin, ammo bu 10 a'zodan
tashqari har kim bu ma'lumotlarga to'g'ridan -to'g'ri kira olmay di, ya'ni sinfning
o'zida keng tarqalganlardan tashqari tashqi funktsiyalar ma'lumotlarga kira
olmaydi. (bu ularga tegishli emas) yoki tayinlangan imtiyozlarga ega bo'lmasdan
(masalan, do'stlar sinfiga yoki meros qilib olingan sinfga ega bo'lganlar, bu key ingi
maqolada ko'rib chiqiladi) yoki to'g'ridan -to'g'ri kirish huquqiga ega bo'lgan ushbu
10 a'zodan biriga kirish huquqiga ega emas. maxfiy ma'lumotlar (xususiy a'zolarga
to'g'ridan -to'g'ri kirish huquqiga ega sinfning umumiy a'zo funktsiyalari orqali
tas hqi dunyoda sinfning shaxsiy a'zolariga qanday kirish mumkinligiga o'xshash).
Amalda ma'lumotlarni yashirish aynan shunday.
Sinfdagi kirish modifikatorlari yoki kirish ko'rsatkichlari sinf a'zolariga kirish
imkoniyatini belgilash uchun ishlatiladi, ya'ni u lar sinf a'zolariga tashqi funktsiyalar
tomonidan to'g'ridan -to'g'ri kirish imkoni bo'lmasligi uchun ba'zi cheklovlar
o'rnatadilar.
C++ da 3 xil kirish modifikatorlari mavjud:](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_13.png)
![Public
Private
Protected
Eslatma: Agar biz sinf ichidagi a'zolar uchun hech qanday kirish modifikatorini
ko'rsatmasak, sukut bo'yicha a'zolar uchun kirish modifikatori Shaxsiy bo'ladi.
Keling, ushbu kirish modifikatorlarining har birini batafsil ko'rib chiqaylik:
1. Public: Oc hiq spetsifikatsiya ostida e'lon qilingan barcha sinf a'zolari hamma
uchun ochiq bo'ladi. Ochiq deb e'lon qilingan ma'lumotlar a'zolari va a'zo
funktsiyalariga boshqa sinflar va funktsiyalar ham kirishi mumkin. Sinfning
umumiy a'zolariga dasturning istalga n joyidan ushbu sinf ob'ekti bilan
to'g'ridan -to'g'ri a'zolarga kirish operatori (.) yordamida kirish mumkin.
2. Private : Maxfiy deb e'lon qilingan sin a'zolariga faqat gunoh orqali a'zo
boshqaruvi orqali kirish mumkin. Ularga sinfdan qo'shimcha bir ob'ekt yoki
funksiya tomonidan to'g'ridan -to'g'ri kirishga ruxsat be rilmaydi. Faqat a'zo
ma'lumotlari yoki do'st imkoniyatlarini gunohning shaxsiy ma'lumotlariga
kirishga ruxsat beriladi.
3. Protected : Himoyalangan kirish modifikatori shaxsiy kirish modifikatoriga
o'xshaydi, chunki unga do'st sinfi yordamisiz o'z sinfidan kirish mumkin emas.
Farqi, Himoyalangan deb e'lon qilingan sinf a'zolariga shu sinfning kichik sinfi
(hosil bo'lgan sinf) ham kirishi mumkin.
Eslatma : Bu meros orqali kirish, merosga qarab, olingan sinfdagi asosiy rejimga
kirish modifikatorini o' boshqar ishi mumkin .](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_14.png)
![Xulosa
Rvalue havolalari C++ tilining kichik texnik kengaytmasi oladi. Ular
dasturchilarga mantiqan keraksiz nusxa ko'chirishdan qo'zg'atuvchi vositalarni
yaratadi. Avvalo, ular yuqori samarali va kutubxonalarda borish uchun
mo'ljallangan.
Lvalue (lokator joy) xotirada identifikatsiy a qilish joyni egallagan ob'ektdir
(masalan, manzilga ega). qiymat yo'q qilish bilan, har qanday ifoda yo'q qiymat
yoki qiymatdir.
Mo'ljallash - C++ ixtisoslashtirilgan dasturlash tilining umumiy nomi bo'lib, ular
ishga tushirishni tezlashtirish va yangi ob'ektlarni qurish uchun mo'ljallangan,
bu esa yangi ob'ektlarni yaratish.
Haqiqatda universal ma'lumotnoma mos yozuvlar katlama kontekstidagi narx
ma'lumotnomasidir. u holda f shablonini chaqirganda ham r1, ham r2 uchun
tur int deb qabul qabul.](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_15.png)
![Foydalanilgan adabiyotlar.
https://www.programiz.com/cpp -programming/public -protected -private -
inheritance
https://www.geeksfor geeks.org/access -modifiers -in -c
https://www.tutorialspoint.com/cplusplus/cpp_class_access_modifiers.htm
https://fayllar.org/reja -c-tilida -sinflar.html](/data/documents/0d145f0a-5f3a-4fdd-8dc3-997264cf9193/page_16.png)
Samarqand Davlat Universiteti, Raqamli Texnologiyalar Fakulteti, Intel lektual tizimlar va kompyuter texnalogiyalari yo’nalishi 205 -guruh talabasi Bobomalikov Abdujalil ning Dasturlash asoslari fanidan bajargan MUSTAQIL ISHI Qa bul qildi: Davirov B.
Mavzu: S inflardagi ichki malumotlar turlari . Reja: 1. Sinf ma'lumotlar turi . 2. Sinf ta'rifi . 3. Ma'lumotni yashirish (inkapsulyatsiya) . 4. Sin f a'zolarida global ruxsat operatoridan foydalanish . 5. Kirish modifikatorlari . 6. Xulosa . 7. Foydalanilgan adabiyotlar.
1. ma'lumotlar turi klassi Ob'ektga yo'naltirilgan yondashuv tushunchalari haqida dastlabki fikr -mulohazalar bildirganimizdan so'ng, sinflarning C++ tilida amalga oshirilishini aniq ko'rib chiqishga o'tamiz. Birinchidan, biz sarl avha fayliga joylashtirilishi mumkin bo'lgan sinf ta'riflarining eng oddiy misolini ko'rib chiqamiz. Bu, odatda, agar sinflar dasturning bir nechta modullarida mavjud bo'lishi kerak bo'lsa, amalga oshiriladi. Shuni esda tutish kerakki, sinf ma'lumotlar tur i tushunchasining kengaytmasi, to'g'rirog'i, struktura tushunchasi. C++ tilida faqat turlar haqida gapirish odatiy holdir; sinf vakili endi shunchaki ma'lumot deb hisoblanmaydi, chunki ba'zi xatti -harakatlar unga xosdir. Qaysidir ma'noda ob'ekt mavjudlikd ir. Dastur odatda xodimlar, kitoblar va hatto fayllar kabi turli xil real hayot ob'ektlari haqidagi ma'lumotlarni saqlash uchun o'zgaruvchilardan foydalanadi. Ob'ektga yo'naltirilgan dasturlashda siz tizimni tashkil etuvchi narsalarga va bu narsalarda baja rishingiz kerak bo'lgan operatsiyalarga e'tibor qaratasiz. Masalan, fayl ob'ekti uchun faylni chop etish, ko'rsatish yoki o'zgartirish operatsiyalariga ega bo'lishingiz mumkin. C++ da siz ma'lumotlar turini yaratishingiz mumkin - ob'ektlaringizni aniqlash uchun sinf. Sizning maqsadingiz sinfga kerak bo'lganda ob'ekt haqida ko'proq ma'lumot kiritishdir. Shunga asoslanib, siz bitta dastur uchun yaratilgan sinfni olishingiz va uni bir nechta turli dasturlarda ishlatishingiz mumkin. 2. Sinf ta'rifi Sinf sizning dasturlaringizga ob'ekt xususiyatlarini belgilaydigan ma'lumotlarni va ushbu ma'lumotlar ustida operatsiyalarni bajaradigan funktsiyalarni birlashtirishga imkon beradi. Ob'ektga yo'naltirilgan dasturlash adabiyotlarida sinfning funktsiyalari usullar yoki f unksiya a'zolari, ma'lumotlar esa maydonlar yoki ma'lumotlar a'zolari deb nomlanishi mumkin. Struktura singari, C++ klassi ham noyob nomga ega boʻlishi kerak, undan keyin ochiladigan jingalak qavs, bir yoki bir nechta maʼlumotlar va funksiya aʼzolari va yo pilish jingalak qavs mavjud: class class_name { int data_member; // Элемент данных
void show_member(int); // Функция -элемент }; Sinf aniqlangandan so'ng, siz quyida ko'rsatilganidek, ushbu sinf turidagi o'zgaruvchilarni (ob'ektlar deb ataladigan) e'lon qilishingiz mumkin: class_name object_one, object_two, object_three ; Quyidagi ta'rif ma'lumotlar va usullar ta'riflarini o'z ichiga olgan xodimlar sinfin i yaratadi: class employee { public: char name[64]; long employee_id; float salary; void show_employ ee(void) { cout << RUS(" Имя : ") << name << endl; cout << RUS(" Номер служащего : ") << employee_id << endl; cout << RUS(" Оклад : ") << salary << endl; }; }; Bunday holda, sinf uchta o'zgaruvchi va bitta a'zo funksiyani o'z ichiga oladi. Sinf ta'rifi ichida umumiy yorliqdan foydalanishga e'tibor bering. Keyincha lik bilib olasiz, sinf a'zolari shaxsiy (xususiy) yoki ommaviy (ommaviy) bo'lishi mumkin, bu sizning dasturlaringiz sinf a'zolariga qanday kirishini belgilaydi. Bu holda
barcha elementlar umumiy bo'lib, ya'ni dastur nuqta operatori yordamida istalgan eleme ntga kirishi mumkin. Dasturingiz ichida sinfni aniqlaganingizdan so'ng, quyida ko'rsatilganidek, ushbu sinf turidagi ob'ektlarni (o'zgaruvchilarni) e'lon qilishingiz mumkin: em ployee worker, boss, secretary; // Переменные (объекты ) класса employe e Quyidagi EMPCLASS.CPP dasturi ikkita xodim ob'ektini, ishchi va xo'jayinni yaratadi. Nuqta operatoridan foydalanib, dastur ma'lumotlar elementlariga qiymatlarni belgilaydi. Keyin dastur xodimlar haqidagi ma'lumotlarni ko'rsatish uchun show_emplo yee usulidan foydalanadi. class employee { public: char name[64]; long employee_id; float salary; void show_employee(void) { cout << RUS(" Имя : ") << name << endl; cout << RUS(" Номер служащего : ") << employee_id << endl; cout << RUS(" Оклад : ") << salary << endl; }; }; employee worker, boss;