O. X. Azamatov


Download 1.82 Mb.
Pdf ko'rish
bet62/119
Sana09.01.2022
Hajmi1.82 Mb.
#256439
1   ...   58   59   60   61   62   63   64   65   ...   119
Bog'liq
3072-Текст статьи-7829-1-10-20200908

 
7.2 Sinflar do‘stlari 
C++da  aniq  sinf  do‘stlariga  bu  sinfning  xususiy  elementlariga  murojaat  etish 
imkonini  beradi.  C++  da  bitta  sinf  yoki  funksiya  ikkinchi  sinfga  do‘stona  sinfligini 
ko‘rsatish  uchun  friend  kalit  so‘zidan  foydalanish  va  do‘stona  sinf  ismini  ikkinchi 
sinf tavsifiga kiritish lozim.  
Do‘stona funksiya va sinflarni ta’riflash: 
friend  
friend  
Masalan,  quyidagi  book  sinfi  librarian  sinfini  o‘ziga  do‘stona  sinf  deb 
belgilagan:  
class book  
{ char title [64] ; 
char author[64]; 
char catalog[64]; 
public: 
book (char *, char *, char *); 
void show_book(void); 
friend librarian; 
}; 
Shuning  uchun  librarian  sinf  obyektlari  book  sinfning  xususiy  elementlariga, 
nuqta operatoridan foydalangan holda, to‘g‘ridan to‘g‘ri murojaat etishi mumkin: 
class librarian  

public: 
   void change_catalog(book *, char *); 


64 
 
   char *get_catalog(book); 
}; 
void librarian::change_catalog(book *this_book, char *new_catalog)  

   strcpy(this_book->catalog, new_catalog); 

char *librarian: :get__catalog(book this_book)  
{  static char catalog[64]; 
             strcpy(catalog, this_book.catalog); 
             return(catalog) ; 
          } 
Ko‘rib  turganimizdek  dastur  librarian  klassining  change_catalog  funksiyasiga 
book  obyektini  adres  orqali  bermoqda.  Bu  funksiya  klassning  book  elementini 
o‘zgartirgani  uchun,  dastur  parametrni  adres  orqali  uzatishi  va  undan  so‘ng  ushbu 
klass  elementiga  murojat  uchun  ko‘rsatkich  ishlatmog‘i  lozim.  Book  klassi 
aniqlanishidan  friend  operatori  o‘chirib  yuborilsa  C++  kompilyatori  har  gal  book 
klassi xususiy ma’lumotlariga murojatda  sintaksik xato xaqida xabar chiqaradi. 
 

Download 1.82 Mb.

Do'stlaringiz bilan baham:
1   ...   58   59   60   61   62   63   64   65   ...   119




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling