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



Pdf көрінісі
бет142/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   138   139   140   141   142   143   144   145   ...   642
Байланысты:
pavlovskaia-jogargy-dengeili

int

 жəне 


const int

 не-


месе 

int

 жəне 


int&)

 ерекшеленетін болса, функциялардың асыра жүктелуі 

мүмкін емес. 

Функциялардың шаблондары

Көптеген алгоритмдер өздері жүмыс істейтін мəліметтер типтеріне 

тəуелді болмайды (классикалық мысал – сұрыптау). Мұндай кездерде 

алгоритмді мəліметтердің əртүрлі типтері үшін қолдануға болатындай етіп 

параметрлер енгізуге талпыну – табиғи ұмтылыс. Бұл мəселені шешудің 

бірінші жолы – тип туралы ақпаратты параметр ретінде беру (мысалы, 

функцияға бір параметр арқылы мəліметтерге нұсқауышты, екінші пара-

метр арқылы мəліметтер элементінің ұзындығын байтпен беруге болады). 

Қосымша параметр қолдану қосымша код генерациялау қажеттігін білдіреді, 

əсіресе рекурсивті шақырулар жəне ішкі циклдердегі шақырулар кезінде 

бұл программаның тиімділігін төмендетеді; оның үстіне, типтерді бақылау 

мүмкіндігі де болмайды. Осының басқа шешімі ретінде мəліметтердің 

əртүрлі типтерімен жұмыс істеу үшін бірнеше асыра жүктелген функциялар-

ды қолдануға болады, бірақ мұндай программада логикасы бойынша бірдей 

бірнеше функция пайда болады жəне əрбір жаңа тип үшін жаңа функция 

енгізу қажеттігі туады. 




89

С++ тілінде параметрлеудің қуатты құралы – шаблондар болып та-

былады. Функциялардың шаблондары жəне кластардың шаблондары бо-

лады (кластардың шаблондары туралы 228 б. қараңыз). Функциялар 

шаблондарының көмегімен əртүрлі типтегі мəліметтер үшін қолданылатын 

алгоритмді анықтауға болады, ал белгілі бір мəліметтер типі функцияға ком-

пиляция кезінде параметр ретінде беріледі. Компилятор берілген типке сəйкес 

келетін дұрыс кодты  автоматты түрде генерациялайды. Осылайша, автоматты 

түрде өзін-өзі асыра жүктейтін жəне параметрлеумен байланысты қосымша 

шығындары жоқ функция құрылады. 



Қарапайым шаблон-функцияның форматы:



Достарыңызбен бөлісу:
1   ...   138   139   140   141   142   143   144   145   ...   642




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

    Басты бет