Класста қолданылатын операцияларды қайта жүктеу
Автор: Aqniyet Aidynuly • Март 5, 2023 • Лабораторная работа • 909 Слов (4 Страниц) • 156 Просмотры
Зертханалық сабақ № 5. Класста қолданылатын операцияларды қайта жүктеу
Кейбір кластарда код үзіндісінің (блоктар) тақырыбында класс атауы (бірақ конструктор емес), одан кейін operator қызметтік сөзі, дөңгелек жақшаларда формальды (формалды) параметрлер жазылады.
Operator қызметтік сөзі арқылы операцияларды қайта анықтау тетігі жазылады, операцияларды қайта анықтау қарапайым математикалық өрнектерде класс типіндегі айнымалыларды қолдануға мүмкіндік береді. Мысалы, «студент» классы үшін қосу операция қайта анықталған болса (operator+) және бағдарламада ct1, ct2 – «студент» типіндегі екі объект құрылған болса, онда ct1 + ct2 өрнегін жазуға болады.
Екі объекттіні қосу нені білдіреді? Мүмкін біз ондағы аттарды біріктірген немесе жас шамаларын қосқан болармыз?
Міне, операцияларды қайта анықтау осы мақсатта қолданылады, онда екі объекттіні қосындылау кезінде нені қосындылау керектілігі анық жазылады, мысалы, бағаларды қосындылау.
Operator қызметтік сөзі операцияны қайта анықтау орындалатынын, ал « + » операциясы болса, қосу операциясының қайта анықталатынын көрсетеді.
Operator сөзін көрсетіп класс операцияларын анықтау операцияларды қайта анықтау деп аталады. Операцияларды қайта анықтау әдетте Математикалық, физикалық ұғымдарды сипаттайтын кластар үшін қолданылады.
Класс операциясын қайта жүктеу арнайы әдіс (функциялар - операциялар) арқылы сипатталады.
Операцияны қайта жүктеудің жазылу пішімі мына түрде болады:
Класс атауының спецификаторлары operator операция атауы (формальды параметрлер) {денесі }
Спецификатор ретінде әдетте public және static қызметтік сөздері бірге қолданылады. Сонымен қатар, операцияны сыртқы операция түрінде жариялауға болады (extern).
Операцияны өрнектерде қолданғанда орындалатын әрекеттер операция денесінде (басқа әдістердің денесі сияқты блок) анықталады.
Операторларды қайта жүктеу
С# тілі құрылатын класқа қатысты оператордың мәнін анықтау мүмкіндігін береді. Бұл процесс операторларды қайта жүктеу деп аталады. Операторды қайта жүктеу арқылы оның клас үшін қолданылуын кеңейтеміз. Операторлардың әрекеттерінің нәтижесі өзіміздің қолымызда, нәтижесі кластан класқа өткенде әр түрлі болуы мүмкін.
Оператоларды қайта жүктеу әдістерді қайта жүктеумен байланысты. Оператоларды қайта жүктеу үшін operator кілттік сөзі қолданылады және ол оператордың оның класымен байланысты іс- әрекетін анықтайды. Operator әдістерінінің екі формасы бар: бірі унарлық операторлар үшін қолданылады, ал екіншісі бинарлық операторлар үшін қолданылады.
// Унарлы операторлар үшін жалпы форматы
public static қайтару_типі operator ор{
параметр_типі операнд)
{
// операциялар
}
// Бинарлы операторлар үшін жалпы форматы
public static қайтару_типі operator op{
1параметр_типі операнд1,
2параметр_типі операнд2)
{
// операциялар
}
мұнда
ор элементі — бұл қайта жүктелетін оператор (мысалы " + " немесе " / " ),
қайтару_типі элементі — бұл көрсетілген операциялардың орындалуының нәтижесінде қайтарылатын мәннің типі.
Кез келген типті таңдауға болатындығына қарамастан, қайтарылатын мәннің типі көбінесе, осы оператор үшін қайта жүктелетін класс типімен сәйкес келеді. Мұндай корреляция қайта жүктелетін операторды өрнектерде қолдануды жеңілдетеді.
Унарлық операторлар үшін операнда операнд элементінде жіберіледі, ал бинарлы үшін - операнд1 және операнд2 элементерінде жіберіледі
Унарлы операторлар үшін операнда типі, оператор үшін анықталған класспен сәйкес келу керек. Бинарлы операторлар үшін, ең болмағанда бір операнданың типі сәйкес класспен сәйкес келуі керек. Сонымен, құрылмаған класстар үшін С# операторларын қайта жүктеуге болмайды.
Бинарлы операторларды қайта жүктеу
"+" және "-" - екі бинарлы опеараторларды қайта жүктеу мысалын қарастырайық.
...