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



Pdf көрінісі
бет85/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   81   82   83   84   85   86   87   88   ...   466
Байланысты:
pavlovskaia-jogargy-dengeili

int
жəне 
int&)
ерекшеленетін болса, функциялардың асыра жүктелуі 
мүмкін емес. 
Функциялардың шаблондары
Көптеген алгоритмдер өздері жүмыс істейтін мəліметтер типтеріне 
тəуелді болмайды (классикалық мысал – сұрыптау). Мұндай кездерде 
алгоритмді мəліметтердің əртүрлі типтері үшін қолдануға болатындай етіп 
параметрлер енгізуге талпыну – табиғи ұмтылыс. Бұл мəселені шешудің 
бірінші жолы – тип туралы ақпаратты параметр ретінде беру (мысалы, 
функцияға бір параметр арқылы мəліметтерге нұсқауышты, екінші пара-
метр арқылы мəліметтер элементінің ұзындығын байтпен беруге болады). 
Қосымша параметр қолдану қосымша код генерациялау қажеттігін білдіреді
əсіресе рекурсивті шақырулар жəне ішкі циклдердегі шақырулар кезінде 
бұл программаның тиімділігін төмендетеді; оның үстіне, типтерді бақылау 
мүмкіндігі де болмайды. Осының басқа шешімі ретінде мəліметтердің 
əртүрлі типтерімен жұмыс істеу үшін бірнеше асыра жүктелген функциялар-
ды қолдануға болады, бірақ мұндай программада логикасы бойынша бірдей 
бірнеше функция пайда болады жəне əрбір жаңа тип үшін жаңа функция 
енгізу қажеттігі туады. 


89
С++ тілінде параметрлеудің қуатты құралы – шаблондар болып та-
былады. Функциялардың шаблондары жəне кластардың шаблондары бо-
лады (кластардың шаблондары туралы 228 б. қараңыз). Функциялар 
шаблондарының көмегімен əртүрлі типтегі мəліметтер үшін қолданылатын 
алгоритмді анықтауға болады, ал белгілі бір мəліметтер типі функцияға ком-
пиляция кезінде параметр ретінде беріледі. Компилятор берілген типке сəйкес 
келетін дұрыс кодты автоматты түрде генерациялайды. Осылайша, автоматты 
түрде өзін-өзі асыра жүктейтін жəне параметрлеумен байланысты қосымша 
шығындары жоқ функция құрылады. 
Қарапайым шаблон-функцияның форматы:


Достарыңызбен бөлісу:
1   ...   81   82   83   84   85   86   87   88   ...   466




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

    Басты бет