• Abstrakt sinflar
  • void rotate(int) { } //
  • Texnologiyalari va kommunikatsiyalarni rivojlantirish vazirligi toshkent axborot texnologiyalari universiteti




    Download 5,48 Mb.
    Pdf ko'rish
    bet25/53
    Sana21.11.2023
    Hajmi5,48 Mb.
    #102807
    1   ...   21   22   23   24   25   26   27   28   ...   53
    Bog'liq
    Texnologiyalari va kommunikatsiyalarni rivojlantirish vazirligi

    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.


    46 
    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: 
    class shape { 
    //... 
    public: 
     virtual void rotate(int) q =0; //sof virtual funksiya 
     virtual void draw() = 0; // sof virtual funksiya 
    }; 
    Abstrakt sinfni faqat boshqa sinf ajdodi sifatida ishlatish mumkin: 
    class circle : public shape { 
     int radius; 
    public: 
     void rotate(int) { }
    //qayta ta’riflash shape::rotate 
     void draw();

    Download 5,48 Mb.
    1   ...   21   22   23   24   25   26   27   28   ...   53




    Download 5,48 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Texnologiyalari va kommunikatsiyalarni rivojlantirish vazirligi toshkent axborot texnologiyalari universiteti

    Download 5,48 Mb.
    Pdf ko'rish