Xulosa Asosiy va qo’shimcha adabiyotlar kirish



Download 213,04 Kb.
bet5/7
Sana27.07.2021
Hajmi213,04 Kb.
#130082
1   2   3   4   5   6   7
Bog'liq
Qurbonov Zokir

2.1. Metodlarni qayta yuklash

Unar operatorlar uchun faqat bitta operand kerak bo‘ladi. Unar operatorni sinfning

funksiya–a’zosi ko‘rinishida qayta yuklashda bu yagona operand bu amalni chaqirgan

obyektning o‘zi hisoblanadi. Shu sababli, unar operatorning operator funksiyasi statik

bo‘lmagan funksiya-a’zo sifatida e’lon qilinadi va u quyidagi ko‘rinishga ega bo‘ladi:

operatorX();

bu yerda funksiya qaytaradigan qiymat turi, X- qayta

yuklanayotgan unar operator.

Agar operator funksiya global ravishda e’lon qilinganda, u quyidagi sintaksisga

javob berishi kerak:

operatorX(

);


bu yerda
– parametr turi va
– funksiya parametri.

Plus va minus unar operatorlarni qayta yuklashga misol

ko‘raylik.

class Nuqta

{

int x,y;



public:

Nuqta(int _x,int _y){x=_x; y=_y;}

Nuqta(){x=0; y=0;}

Qiymat_xy(int & _x,int & _y){_x=x; _y=y;}

Nuqta operator+();

Nuqta operator-();

};

Nuqta & Nuqta::operator+()



{

x=+x;


y=+y;

return *this;

}

Nuqta & Nuqta::operator+()



{

x=-x;


y=-y;

return *this; 196

}

void main()



{

int a,b;

Nuqta n1(-10,20);

n1=+n1; //qayta yuklangan plyus operatorini chaqirish

n1.Qiymat_xy(a,b);

Console.Write("n1.x=”<

n1=-n1; //qayta yuklangan minus operatorini chaqirish

n1.Qiymat_xy(a,b);

Console.Write("n1.x=”<

}


Programma ishlashi natijasida ekranda

n1.x=-10 n1.y=20

n1.x=10 n1.y=-20

satrlari paydo bo‘ladi.

Xuddi shu natijalarga global operator funksiyalarni sinfning do‘st funksiyalari

ko‘rinishida e’lon qilish orqali erishish mumkin:

friend Nuqta operator+(Nuqta & ob);

friend Nuqta operator-(Nuqta & ob);

Bu funksiyalar aniqlanishi

friend Nuqta operator+(Nuqta & ob)

{

ob.x=+ob.x;



ob.y=+ob.y;

return ob;

}

friend Nuqta operator-(Nuqta & ob)



{

ob.x=-ob.x;

ob.y=-ob.y;

return ob;

}

Ushbu funksiyalarni chaqirish natijalari yuqoridagi funksiyalar bilan bir xil



bo‘ladi. Inkrement va dekrement operatorlari, ularning prefiks va postfiks ko‘rinishlari bo‘lishi hisobiga qayta yuklash nuqtai-nazaridan alohida kategoriyaga tushadi. Prefiks va postfiks ko‘rinish-larni farqlash uchun quyidagi qoidalarga amal qilinadi: prefiks ko‘rinishni qayta yuklash, odatdagi unar operatorni qayta yuklash bilan bir xil; postfiks ko‘rinish uchun operator funksiya qo‘shimcha int turidagi parametrga ega bo‘ladi. Amalda bu parametr ishlatilmaydi va funksiyani chaqirishda uning qiymati 0 bo‘ladi (zarurat bo‘lganda ishlatilishi mumkin). Bu parametrning vazifasi - kompilyatorga operatorning postfiks ko‘rinishi ishlatilayotganligini bildirishdir. Quyidagi misolda Nuqta sinfi uchun inkrement va dekrement operator-larini qayta yuklash ko‘rsatilgan:

class Nuqta

{

int x,y;



public:

Nuqta(int _x,int _y){x=_x; y=_y;}

Nuqta(){x=0; y=0;}

Qiymat_xy(int & _x,int & _y){_x=x; _y=y;}

Nuqta & operator++(); // prefiks inkrement uchun

Nuqta operator++(int); // postfiks inkrement uchun

Nuqta & operator––(); // prefiks dekrement uchun

Nuqta operator––(int); // postfiks dekrement uchun

};

Nuqta & Nuqta::operator++()



{

x++;


y++;

return *this;

}

Nuqta Nuqta::operator++(int)



{

Nuqta Oraliq=*this;

++*this;

return Oraliq;

}

Nuqta & Nuqta::operator--()



{

x--;


y--;

return *this;

}

Nuqta Nuqta::operator--(int)



{

Nuqta Oraliq=*this; 198

--*this;

return Oraliq;

}

void main()



{

int a,b;

Nuqta n1(-10,20);n2(15,25),n3;

++n1; //prefiks inkrement operatorini chaqirish

n1.Qiymat_xy(a,b);

Console.Write("(++n1).x=”<

n1++; //postfiks inkrement operatorini chaqirish

n1.Qiymat_xy(a,b);

Console.Write("(n1++).x=”<

n3=--n2; //prefiks dekrement operatorini chaqirish

n3.Qiymat_xy(a,b);

Console.Write("n3=--n2; => n3.x="<

n1.Qiymat_xy(a,b);

Console.Write("n1.x="<

n1++; //postfiks inkrement operatorini chaqirish

n1.Qiymat_xy(a,b);

Console.Write("(n1++).x=”<

n3=--n2; //prefiks dekrement operatorini chaqirish

n3.Qiymat_xy(a,b);

Console.Write("n3=--n2; => n3.x="<

n1.Qiymat_xy(a,b);

Console.Write("n1.x="<Download 213,04 Kb.
Do'stlaringiz bilan baham:

1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish