Axborot texnologiyalari texnikumi



Download 7,87 Mb.
bet57/78
Sana26.08.2022
Hajmi7,87 Mb.
#847735
1   ...   53   54   55   56   57   58   59   60   ...   78
Bog'liq
Algortmlash va dasturlash asoslari UMT восстановлен

Polimorfizmning ta'rifi


Polimorfizm atamasi shunchaki "bitta funktsiya, ko'p shakllar" degan ma'noni anglatadi. Polimorfizmga kompilyatsiya vaqtida ham, ish vaqtida ham erishiladi. Kompilyatsiya vaqt polimorfizmi "haddan tashqari yuklash", ish vaqti polimorfizmi "bekor qilish" orqali amalga oshiriladi.
Polimorfizm ob'ektga har ikkalasida ham kompilyatsiya vaqtini va ishlash vaqtini "funktsiya qaysi shakli chaqirilishini" hal qilishga imkon beradi.
Haddan tashqari yuklanishning birinchi kontseptsiyasini muhokama qilaylik. Haddan tashqari yuklanishda biz sinfdagi funktsiyani bir necha marotaba turli xil, ma'lumotlar turi va parametrlar soni bilan aniqlaymiz, ortiqcha yuklanadigan funktsiya bir xil qaytish turiga ega bo'lishi kerak. Haddan tashqari yuklangan funktsiyalar ko'pincha sinfning konstruktorlari hisoblanadi.
Sinfning haddan tashqari yuklanishi
{int a, b; public: int haddan tashqari yuk (int x) {// birinchi haddan tashqari yuk () konstruktor a = x; qaytish a; } int ortiqcha yuk (int x, int y) {// ikkinchi ortiqcha yuk () konstruktor a = x; b = y; a * b qaytarish; }}; int main () {ortiqcha yuk O1; Ortiqcha yuk (20); // birinchi haddan tashqari yuklanish () konstruktor O1.overload (20,40) chaqiradi; // ikkinchi ortiqcha yuk () konstruktor chaqiruvi}
Masalan, polimorfizmning ikkinchi shaklini, ya'ni bekor qilishni muhokama qilaylik. Yo'q qilish tushunchasi faqat meros tushunchasini amalga oshiradigan sinflar funktsiyasida amalga oshirilishi mumkin. C ++ da bekor qilinadigan funktsiyadan oldin asosiy sinfda "virtual" kalit so'zi qo'yiladi va "virtual" kalit so'zidan tashqari bir xil prototip bilan olingan sinfda qayta belgilanadi.
class base {public: virtual void funct () {// basic class cout of "this is the basic class’s funct ()"; }}; class derived1: public base {public: void funct () {// derived1 class cout-da qayta belgilangan baza sinfining virtual funktsiyasi "Bu derived1 sinfning funct ()"; }}; int main () {base * p, b; olingan1 d1; * p = & b; p-> funct (); // funktsiya () bazaviy sinfiga qo'ng'iroq. * p = & d1; qaytish 0; }


Download 7,87 Mb.

Do'stlaringiz bilan baham:
1   ...   53   54   55   56   57   58   59   60   ...   78




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