+ операторын асыра жүктеу,
Complex класының пайдалы функцияларын кеңейтеді, дегенмен,
оны ол аяғына дейін орындамайды. Оның себебі
operator + (Complex, int) әдісі келесідей
операцияларды орындауға мүмкіндік береді:
C3 = C1 + 10; бірақ ол келесідей операцияларды орындай алмайды,
C3 = 10 + C1; Бұл әдістегі екінші бүтін аргумент
+ бинарлық операторының оң жақ операндын белгілейді,
бірақ жоғарыда көрсетілген жолда бүтін аргумент сол жақта көрсетіледі. Мұндай қосу операциясын
орындауға рұқсат беру үшін,
+ операторын тағы да бір рет асыра жүктеу керек. Мұндағы жағдайда
операторлық әдістің бірінші параметрі
int типінде болуы керек, ал екінші параметрі – тип
Complex типінде болуы тиіс.
Қатынас операторларын асыра жүктеу == және
< тәрізді қатынас операторлары да өте оңай асыра жүктеледі. Бұлар көбінесе асыра
жүктелу кезінде логикалық
true және
false мәндерін қайтарады. Бұл мүмкіндік осылай
операторларды шартты операторларда қолдану мүмкіндігін береді. Егерде нәтиже басқа типте
болса, қатынас операторларын қолдану аясы кішірейеді.
5-мысал. < және
> операторларын
Complex класы арқылы асыра жүктеу керек. Бұл мысалдағы
операторлар комплекс сандардың модульдерін салыстырады. Комплекс санның модулі оның нақты
және жорамал бөліктерінің квадраттары қосындысын түбір астынан шығару арқылы анықталады.
Егерде бір де бір оператор логикалық
true мәнін қайтармаса, онда екі комплекс санның модульлері
тең болып саналады. Әрине, бұдан басқа да реттеу алгоритмдері болуы мүмкін.
using System; // Комплекс сандармен жұмыс істеуге арналған класс