O. X. Azamatov


 O‘zaro do‘st funksiyalar va sinflar


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

7.3. O‘zaro do‘st funksiyalar va sinflar 
Agarda  bir  nechta  sinf  funksiyalariga  boshqa  sinfning  xususiy  ma’lumotlariga 
murojaat  qilish  kerak  bo‘lsa,  u  holda  C++  do‘stona  sinfning  faqatgina  belgilangan 
funksiyalari  xususiy  elementlarga  murojaat  etishiga  imkoniyat  beradi.      Masalan, 
faqatgina  change_catalog  va  get_catalog  funksiyalarga  book  sinfning  xususiy 
elementlariga murojaat kerak. Quyida ko‘rsatilgandek, book sinfning ichida faqatgina 
shu funksiyalarda xususiy funksiyalarga murojaat chegarasini qo‘yishi lozim: 
class book  

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


65 
 
   friend char *librarian::get_catalog(book); 
   friend void librarian: :change_catalog( book *, char *); 
private: 
   char title[64]; 
   char author[ 64 ]; 
   char catalog[64]; 
}; 
Ko‘rib turganimizdek  friend operatorlari xususiy  elementlarga  murojat qiluvchi 
hamma do‘st funksiyalarini to‘liq prototiplarini o‘z ichiga oladi.  
Agar  dastur  bir  sinfdan  boshqasiga  murojaat  qilsa    va  sinflar  aniqlanish  tartibi 
noto‘g‘ri  bo‘lsa  sintaksik  xatoga  duch  kelish  mumkin.  Bizning  holda  book  klassi 
librarian klassida e’lon qilingan funksiyalar prototiplariga murojat qilmoqda. Shuning 
uchun librarian klassi aniqlanishi book klassi aniqlanishidan oldin kelishi kerak, biroq 
librarian klassi book klassiga murojat qilmoqda: 
class librarian  

public: 
   void change_catalog(book *, char *); 
   char *get_catalog(book); 
}; 
book klassi aniqlanishini librarian klassi aniqlanishidan oldini qo‘yib bo‘lmagani 
uchun. C++ book klassini e’lon qilish imkonini beradi va shu bilan u kompilyatorga 
bunday  klass  borligi  xaqida  xabar  beradi  va  keyinroq  o‘zi  ham  aniqlanadi.  Quyida 
buni qanday amalga oshirish keltirilgan: 
class book; // sinf elon qilinishi 

Download 1.82 Mb.

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




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