Xulosa. Dynamic cast nima uchun kerak ?



Download 48,58 Kb.
bet4/7
Sana14.12.2022
Hajmi48,58 Kb.
#885934
1   2   3   4   5   6   7
Bog'liq
Dynamic cast

Object^o2 = 10;
PrintObjectType(o1);
PrintObjectType(o2);
}

Ushbu ierarxiyada A virtual tayanch sinf mavjud. Sinf misoli E va pastki ob'ektga ko'rsatgich berilgan bo'lsa A, noaniqlik tufayli dynamic_cast a ko'rsatgich muvaffaqiyatsiz bo'ladi.  Avval to'liq ob'ektga qaytishingiz kerak E, so'ngra to'g'ri ob'ektga erishish uchun ierarxiya bo'ylab bir ma'noda orqaga qaytishingiz kerak B.
Quyidagi rasmda ko'rsatilgan sinf ierarxiyasini ko'rib chiqing.

Ikki nusxadagi asosiy sinflarni ko'rsatadigan sinf ierarxiyasi


Ob'ekt turi E va pastki ob'ektga ko'rsatgich berilgan holda, pastki ob'ektdan eng chap tomondagi pastki ob'ektga D o'tish uchun uchta konvertatsiya qilish mumkin. Siz ko'rsatgichdan ko'rsatkichga o'zgartirishni, so'ngra dan ga o'zgartirishni (yoki yashirin konvertatsiyani) va nihoyat dan ga o'zgartirishni amalga oshirishingiz mumkin .
Masalan: D A dynamic_cast D E dynamic_cast E B B A .
class A {virtual void f();};
class B : public A {virtual void f();};
class C : public A { };
class D {virtual void f();};
class E : public B, public C, public D {virtual void f();};

void f(D* pd) {
E* pe = dynamic_cast(pd);
B* pb = pe; // yuqoriga ko'tarilgan, yashirin konvertatsiya
A* pa = pb; // yuqoriga ko'tarilgan, yashirin konvertatsiya
}
Operatordan dynamic_cast "o'zaro to'qnashuv" ni bajarish uchun ham foydalanish mumkin. B Xuddi shu sinf ierarxiyasidan foydalanib, to'liq ob'ekt turi bo'lsa, ko'rsatgichni, masalan, pastki ob'ektdan pastki ob'ektga D o'tkazish mumkin E.
D O'zaro o'tishlarni hisobga olsak, ko'rsatgichdan ko'rsatkichga eng chap A pastki ob'ektga o'tkazishni faqat ikki bosqichda amalga oshirish mumkin . D dan ga o'zaro o'tishni , so'ngra dan ga B bilvosita aylantirishni amalga oshirishingiz mumkin . Masalan: B A

Download 48,58 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