Aliyev o. A, Xo‘jamuratov b. «C++ da dasturlash» fanidan tajriba ishlarini bajarish bo‘yicha uslubiy ko‘rsatma


Download 2.01 Mb.
bet20/27
Sana20.11.2023
Hajmi2.01 Mb.
#1787789
1   ...   16   17   18   19   20   21   22   23   ...   27
Bog'liq
file8

class X1 { ... };
class X2 { ... };
class X3 { ... };
class Y1: public X1, public X2, public X3 { ... };
Bir necha to’g’ri baza sinflari mavjud bo’lib, ular ko’plik vorislari deb nomlanadi.
Ko’plik vorislarida ketma-ket bazada hech qanday sinf bittadan ortiq ishlatilishi mumkin emas. Bitta sinf to’g’ri bo’lmagan sinfda bir necha marta ishlatilishi mumkin:
class X { ...; f () ; ... };
class Y: public X { ... };
class Z: public X { ... };
class D: public Y, public Z { ... };
Bu misolda X sinf D sinfning ikki marta o’rtacha vorisi bo’ladi. Bizning misolimizda ikkita qiymati qatnashadi, va shuning uchun bir qiymatli bo’lmagan D sinfning obyekti X sinfning aniq komponentiga murojat qulayligini bartaraf qilish kerak, uni to’liq kvalifikatsiyasi D::Y::X::f() yoki D::Z::X::f(). D sinfning obyekti ichida sodda ko’rinish Y::X::f() yoki Z::X::f(), lekin bu ham kvalifikatsiyani mazmunidir.
Bir xil nomdagi obyektlarni bartaraf qilishda to’g’ri bo’lmagan sinf bazalari ko’plik vorislari, bu sinf bazalari virtual deb e’lon qilinadi. Buning uchun sinf bazalari ro’yxatida oldingi sinf nomini virtual kalit so’zini ishlatish kerak. Misol uchun X sinfi virtual baza sinfi bo’la oladi bunaqa ko’rinishda yozilganda:
class X { ... f() ; ... };
class Y: virtual public X { ... };
class Z: virtual public X { ... };
class D: public Y, public Z { ... };
Endi D sinf X dan faqat bitta nusxada bo’ladi, ruxsat etilgan to’g’ri tenglikdan Y va Z sinflarini ifodalaydi.
Abstrakt sinflar
Xech bo’lmasa bitta sof (bo’sh) virtual funksiyaga ega bo’lgan sinf abstrakt sinf deyiladi.Quyidagi tavsifga ega bo’lgan komponentali funksiya sof virtual funksiya deyiladi:
virtual () = 0;
Abstrakt sinf xosila sinf uchun asosiy (bazaviy) sinf sifatida ishlatilishi mumkin. Abstrakt sinflarning mexanizmi keyinchalik konkretizatsiyalanadigan umumiy tushunchalarni tavsiflash uchun ishlab chiqilgan. Bu xolda, sinflar ierarxiyasini yaratish quyidagi sxema bo’yicha bajariladi.
Ierarxiya asosida abstrakt bazoviy sinf turadi. U interfeysni meros kilib olish uchun foydalaniladi. Xosila sinflar bu interfeysni konkretizatsiyalaydi va amalga oshiradi. Abstrakt sinfda sof virtual funksiyalar elon etilgan, ular aslida abstrakt usullar.
Ba’zi sinflar masalan shape sinfi, abstrakt tushunchalarni ifodalaydi va ular uchun obyekt yaratib bo’lmaydi. Bunday sinflar biror xoila sinfda ma’noga ega bzladm:

Download 2.01 Mb.

Do'stlaringiz bilan baham:
1   ...   16   17   18   19   20   21   22   23   ...   27




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