O. X. Azamatov


 Obyektlar massivlari. Sinf struktura kengaytmasi sifatida



Yüklə 1,82 Mb.
Pdf görüntüsü
səhifə56/119
tarix31.12.2021
ölçüsü1,82 Mb.
#49500
1   ...   52   53   54   55   56   57   58   59   ...   119
3072-Текст статьи-7829-1-10-20200908

5.4. Obyektlar massivlari. Sinf struktura kengaytmasi sifatida 
Obyektlar  aniqlangandan  so‘ng  shu  obyektlarga  ko‘rsatkichlar  belgilash 
mumkin. Masalan: 
complex A(5.2,2.7); 
complex* PA=&A; 
Obyektning  umumiy  elementlariga  murojaat  uchun  ->  operatsiyani  yoki  ism 
almashtirish va nuqta operatsiyasidan foydalanish mumkin 
*PA.real() yoki PA->real; 
Agarda  konkret  obyektga  ishlov  berish  uchun  sinf  a’zosi  –  funksiya  chaqirilsa, 
unda  shu  funksiyaga  obyektga  belgilangan  ko‘rsatkich  avtomatik  va  ko‘rsatilmagan 
holda uzatiladi. Bu ko‘rsatqich this ismiga ega va x* this kabi har bir funksiya uchun 
ko‘rsatilmagan holda belgilanadi.  
Х sinfni ekvivalent ko‘rinishda shunday tavsiflash mumkin:  
class x { 
int m; 
public: 
int readm() { return this->m; } 
}; 
A’zolarga murojaat etishda  this dan foydalanish ortiqcha. Asosan this bevosita 
ko‘rsatkichlar  bilan  manipulyatsiya  qilish  uchun  a’zo  funksiyalarini  yaratilishida 
foydalaniladi.   


53 
 
Sinf kompanentasi yagona bo‘lib va hamma yaratilgan obyektlar uchun umumiy 
bulishi uchun uni statik element sifatida ta’riflash ya’ni static atributi orqali ta’riflash 
lozimdir.  Obyektlarni  yaratishda  sinf  statik  ma’lumotlari  takrorlanmaydi,  ya’ni  har 
bir  statik  komponentlar  birdan-bir  ko‘rinishda  mavjud.  Statik  elementlarga  murojat 
qilish  uchun  oldin initsializatsiya  kilinishi  lozim. Inizializatsiya  quyidagicha  amalga 
oshiriladi: 
::   
Masalan:   
int complex : : count = 0; 
Bu  taklifni  sinfni  aniqlashdan  so‘ng  global  soxada  joylashtirish  lozim. 
Faqatgina sinf statistik ma’lumotlarini initsializatsiyalashda u xotiraga ega bo‘ladi va 
unga murojaat etish mumkin. Sinf statik ma’lumotlarga faqatgina obyekt ismi orqali 
murojaat etish mumkin.  . 
Masalan:   
complex a; a.count=5; 
 Lekin,  statik  komponetlarga  sinf  obyekti  aniqlanmagan  holda  ham  murojaat 
etish  mumkin.  Statistik  komponentlarga  nafaqat  obyekt  ismi,  balki  sinf  ismi  orqali 
ham murojaat etish mumkin.  
: :   
Masalan 
complex:: count=5; 
Lekin shunday murojaat faqatgina public komponentlarga tegishli. 
private  statik  komponentlarga  tashqaridan  murojaat  etishda    funksiya  –  statik 
komponentlardan foydalaniladi.  
Bu funksiyalarni sinf ismi orqali chaqirish mumkin.  
: :  
Misol. 
#include  
class TPoint 



54 
 
  double x,y; 
  static int N;  // statik maydon: nuqtalar soni 
   public: 
  TPoint(double x1 = 0.0,double y1 = 0.0){N++; x = x1; y = y1;} 
  static int& count(){return N;} // statik komponenta-funksiya 
}; 
int TPoint : : N = 0; //statik maydon initsializatsiyasi 
void main(void) 
{TPoint A(1.0,2.0); 
  TPoint B(4.0,5.0); 
  TPoint C(7.0,8.0); 
  cout<< \nAniqlangan”<Obyektlar  massivi  ta’riflash  uchun  sinf  ko‘zda  tutilgan  (parametrsiz) 
konstruktorga ega bo‘lishi kerak. 
Obyektlar massivi ko‘zda tutilgan konstruktor tomonidan, yoki har bir element 
uchun konstruktor chaqirish yo‘li bilan initsializatsiya qilinishi mumkin. 
class complex a[20]; //ko‘zda tutilgan parametrsiz konstruktorni chaqirish 
class complex  b[2]={complex (10),complex (100)};//oshkor chaqirish 

Yüklə 1,82 Mb.

Dostları ilə paylaş:
1   ...   52   53   54   55   56   57   58   59   ...   119




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin