1. Obyekt tushunchasi. Sinf tushunchasi



Download 112,96 Kb.
bet7/7
Sana02.07.2022
Hajmi112,96 Kb.
#733626
1   2   3   4   5   6   7
Bog'liq
mustaqil talim

p = &d1;

  • p->vfunc(); // derived1 sinf vfunc() virtual funksiyasi

  • // derived2 sinfga ko’rsatkich

  • p = &d2;

  • p->vfunc(); // derived2 sinf vfunc() virtual funksiyasi

  • return 0;

  • }

    Asos sinfda virtual funksiya yaratilgan va bu voris sinf uchun override qilinishi mumkin.

    • Asos sinfda virtual funksiya yaratilgan va bu voris sinf uchun override qilinishi mumkin.

    • Agar voris sinfda mazkur virtual funksiya override qilinmagan bo’lsa nima bo’ladi?

    • Bunda voris sinf obyekti virtual funksiyaga murojaat qiladi, ya’ni asos sinf virtual funksiyasiga.

    • Quyida misol keltirilgan:

    class base {

    • class base {

      • public:

      • virtual void vfunc() {

      • cout << "This is base's vfunc().\n";

    • } };

    • class derived1 : public base {

      • public:

      • void vfunc() {

      • cout << "This is derived1's vfunc().\n";

    • }

    • };

    • class derived2 : public base {

      • public:

      • // vfunc() override qilinmagan

    • };

    int main()

    • int main()

    • {

    • base *p, b;

    • derived1 d1;

    • derived2 d2;

    • // base sinfga ko’rsatkich

    • p = &b;

    • p->vfunc(); // base sinf vfunc() virtual funksiyasi

    • // derived1 sinfga ko’rsatkich

    • p = &d1;

    • p->vfunc(); // derived1 sinf vfunc() virtual funksiyasi

    • // derived2 sinfga ko’rsatkich

    • p = &d2;

    • p->vfunc(); // derived2 sinf vfunc() virtual funksiyasi

    • return 0;

    • }

    C++ tilida kamida bitta virtual funksiyaga ega bo’lgan sinf abstrakt sinf deyiladi.

    • C++ tilida kamida bitta virtual funksiyaga ega bo’lgan sinf abstrakt sinf deyiladi.

    • Abstrakt sinfning asosiy xususiyatidan biri shuki, ushbu turdagi sinfdan obyekt olib bo’lmaydi.

    • Demak sinfni to’la abstractligini ta’minlash uchun quyidagi qonuniyatdan foydalanamiz:

    • class base{

    • public:

    • virtual vfunc(args....) = 0;

    • ..... }

    class Base

    • class Base

    • {

    • public:

    • virtual void display( int i)=0;

    • };

    • class Derv: public Base

    • {

    • public:

    • void display(int j)

    • { cout<<"Derv::"<<="" b="">

    • };

    • int main()

    • {

    • Base b; // xato, chunki Base sinf abstrakt

    • Base *ptr = new Derv;

    • ptr->display(10);

    • return 0;

    • }

    Download 112,96 Kb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5   6   7




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

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish