logo

Sinflardagi ichki malumotlar turlari.

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

666.59765625 KB
 
 	
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;	 	
    
 
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.	 	
 
  
  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:	  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);	  	 	//	Прототип	 	функции	 	
 
};	 	
  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.  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  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.	 	
  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  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:	   
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 .	 	
 	                          	           	   	 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.	 	
 	  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

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;