Тилига кириш услубий қўлланма


Бир хил номли ҳар хил функциялар



Download 1,05 Mb.
bet33/86
Sana25.04.2022
Hajmi1,05 Mb.
#580284
1   ...   29   30   31   32   33   34   35   36   ...   86
Bog'liq
C qo`llanma

Бир хил номли ҳар хил функциялар


С++ тилида бир номдаги бир нечта функцияларни тузиш имконияти мавжуддир. Бу бир хил номдаги хар хил функциялар дейилади. Қайта юкланувчи функциялар бир – бирлари билан параметрлари рўйхати билан фарқ қилиши лозим. Бунда параметрлар ёки турли сонда аниқланиши, ёки типлари билан фарқланиши керак. Қуйидаги мисолларни кўриб чиқамиз:
int myFunction( int, int )
int myFunction( long, long)
int myFunction( long )
myFunction() функцияси учта турли параметрлар рўйхати билан хар хил номда аниқланяпти. Функциянинг биринчи ва иккинчи версиялари параметрлар типи билан, учинчиси эса параметрлар сони билан фарқ қилаяпти.
Ушбу функцияларнинг қайтарадиган қийматларининг типлари бир хил ёки турлича бўлиши мумкин. Лекин, параметрлари рўйхати бир хил бўлган иккита функция турли типдаги қиймат қайтарадиган қилиб аниқланса дастурни компиляция қилиш жараёнида хатолик юз беради.
Функцияларни бир хил ном билан аниқланиши уларнинг полиморфизми деб ҳам аталади. Полиморфизм сўзи поли (гр. poly) - кўп, морфе (гр. morphё) - шакл cўзидан олинган бўлиб, кўпшакллилик деган маънони англатади.
Функциянинг полиморфизми деганда дастурда бир нечта турли вазифаларни бажарувчи бир хил номдаги функциялар бўлиши тушунилади. Параметрлари сони ва типини ўзгартириш орқали бир нечта бир хил номдаги функцияларни аниқлаш мумкин. Бундай ҳолда функцияни чақиришда ҳеч қандай ноаниқлик бўлмайди, керакли функция параметрига мувофиқ тарзда аниқланади.
Фараз қиламиз, сиз ихтиёрий берилган қийматни иккига кўпайтирадиган функция ёзмоқчисиз. Бу функцияга int, long, float ёки double типидаги қийматларни узатиш имконияти бўлишини ҳоҳладингиз. Бир хил номли хар хил функцияларсиз буни бажариш учун тўртта турли номдаги функцияларни ҳосил қилишингиз керак бўлади:
int DoubleInt(int);
long DoubleLong(long);
float DoubleFloat(float);
double DoubleDouble(double);
Бир хил номли функциялар ёрдамида эса уларни ўрнига ушбу функцияларни аниқлашимиз мумкин.
int Double(int);
long Double(long);
float Double (float);
double Double(Double);
Қайта юкланган функциялар чақирилганда компилятор айнан қайси вариантдаги функцияни ишлатиш кераклигини автоматик тарзда узатилаётган параметрларнинг типларига мувофиқ аниқлайди. Бир хил номли функцияларнинг аниқланиши 5.8.–листингда кўрсатилган.

Download 1,05 Mb.

Do'stlaringiz bilan baham:
1   ...   29   30   31   32   33   34   35   36   ...   86




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