Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»



Pdf көрінісі
бет81/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   77   78   79   80   81   82   83   84   ...   465
Байланысты:
аибм сплюс

Функцияларды асыра жүктеу
Көбінесе мəліметтердің əртүрлі типтері үшін бірдей алгоритмді жүзеге 
асыратын функциялар атауларының бірдей болғаны ыңғайлы болады. Егер бұл 
атау қажетті ақпаратты беретін болса, онда программаны түсіну жеңілдейді, 
себебі əрбір əрекет үшін бір ғана атауды есте сақтау керек болады. Атаулары 
бірдей, бірақ параметрлерінің типтері əртүрлі бірнеше функцияны қолдану 
функцияларды асыра жүктеу деп аталады. 
Қандай функцияны шақыру қажеттігін компилятор нақты пара-
метрлер типіне байланысты анықтайды. Бұл процесс асыра жүктеудің 
рұқсатнамасы деп аталады (resolution ағылшын сөзінің «нақтылау» 
мағынасындағы аудармасы). Функцияның қайтаратын мəнінің типі 
рұқсатнамаға əсер етпейді. Рұқсатнама механизмі айтарлықтай күрделі 
ережелер жиынына негізделген, олардың мағынасын қысқаша түрде бы-
лай қорытындылауға болады: функцияны барынша лайықты аргумент-
термен қолданып, ондай мүмкіндік табылмаса, қате туындағаны тура-
лы хабарлама шығару қажет. Ең үлкен мəнді (максимумды) анықтайтын 
функцияның төрт нұс қасы бар делік:
// Екі бүтін санның үлкенін қайтарады:
int max (int, int);
// Ең ұзақ ішкі тіркесті қайтарады:
char* max(char*, char*);
// Екінші параметр ұзындығын жəне бірінші параметрді 
// салыстырып, үлкенін қайтарады:
int max (int, char*);
// Бірінші параметр ұзындығы мен екінші параметрді 
// салыстырып, үлкенін қайтарады:
int max (char*, int);
void f(int a, int b, char* c, char* d){
cout << max(a, b) << max(c, d) << max(a, c) << max(c, b);

Компилятор осы 
max
функциясын шақырған кезде нақты параметрлер 
типіне сəйкес келетін функция нұсқасын таңдайды (келтірілген мысалда 
функцияның төрт нұсқасы бірінен соң бірі тізбекті түрде шақырылады).
Егер дəл сəйкестік табылмаса, онда жалпы ережелерге сəйкес типтерді 
түрлендіру орындалады (32 б. пен 3-қосымшаны қараңыз), мысалы 


Достарыңызбен бөлісу:
1   ...   77   78   79   80   81   82   83   84   ...   465




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет