10- mavzu: Obyektga yo’naltirilgan dasturlash tillari Obyektga yo‘naltirilgan dasturlash


O‘zaro do‘st funksiyalar va sinflar



Yüklə 274,43 Kb.
Pdf görüntüsü
səhifə10/14
tarix26.01.2023
ölçüsü274,43 Kb.
#80870
1   ...   6   7   8   9   10   11   12   13   14
10 lecture

 
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: 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: 
Do‘stona munosabat qoidalari 
Odatda sinflarni loyihalashda savol kelib chiqadi, sinflarni o‘zaro munosabatini 
qanday qurish kerak bo‘ladi. Ikkita oddiy sinflarga misol ko‘ramiz – Square va 
Rectangle, ular kvadrat va to‘g‘rito‘rtburchaklardir. Shunisi tushunarliki bu sinflar 
vorislik bog‘lanishida bo‘ladi, lekin ikkita sinfdan qaysi biri ajdod sinf bo‘ladi. Yana 
ikkita sinfga misol – Car va Person, ya’ni mashina va inson. Bu sinflar bilan 
Person_of_Car ya’ni mashina egasi sinfi qanday aloqada bo‘lishi mumkin? Bu ikki 
sinf bilan vorislik bog‘lanishida bo‘lishi mumkinmi? Sinflarni loyihalash bilan 
bog‘liq bu savollarga javob topish uchun shuni nazarda tutish kerakki, “mijoz-
yetkazuvchi” bog‘lanishi “ega” (“has”) bog‘lanishini, vorislik bog‘lanishi esa “bir 


xil” (“is a”) bog‘lanishi tushunchalarini ifodalaydi. Square va Rectangle sinflari 
misoli tushunarli, har bir obyekt kvadrat to‘g‘rito‘rtburchakdir, shuning uchun bu 
sinflar o‘rtasida vorislik bog‘lanishi ifodalanadi, va Rectangle sinfi ota-onalar sinfini 
ifodalaydi. Square sinfi uning o‘g‘lidir. Mashina egasi mashinaga ega va insondir. 
Shuning uchun Person_of_Car sinfi Car sinfning mijozi bo‘lib hisoblanadi va Person 
sinfning vorisidir. 

Yüklə 274,43 Kb.

Dostları ilə paylaş:
1   ...   6   7   8   9   10   11   12   13   14




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