Standart amallarni qayta yuklash (dasturlash)



Download 98 Kb.
bet1/2
Sana24.12.2022
Hajmi98 Kb.
#895475
  1   2
Bog'liq
2 mavzu


Standart amallarni qayta yuklash (dasturlash)

Reja:




  1. Operator overloading nima?

  2. OPERATOR funksiyasidan foydalanish

  3. Binar va unar amllarni yuklash (+, -, ++, --, =, +=, -=,>>,<<)

  4. Mantiqiy operatorlarni yuklash

  5. Yuklash mumkin bo’lmagan operatorla

Operatorlarni qayta yuklash nima?
C++ dasturlash tilida operatorlarni qayta yuklash imkoniyati mavjud. Biz o’zimiz yaratgan obyektlar ustida operatorlar yordamida ixtiyoriy amallarni bajarishimiz mumkin. Masalan:
int a, b, c;
c = a + b; // bunday yozishimiz mumkin
Myclass a,b,c;
c = a + b; // bu xolatda xatolik yuz beradi
Buning oldini olish uchun operatorlarni qayta yuklashimiz zarur!


OPERATOR function
Operatorlarni qayta yuklash uchun maxsus operator degan funksiyadan foydalaniladi va ushbu kalit so’zdan keyin qayta yuklanishi kerak bo’lgan amal yoziladi. Operator funksiyasi operator kalit so’zidan foydalanib yaratiladi.
Ushbu operator funksiyasi sinf ob’yektlari orasidagi qo’shimcha amallarni huklaydi va sinf a’zolariga mos ishlaydi. Operator funksiyasi sinfning a’zosi bo’lishi yoki bo’lmasligi mumkin. Demak operator funksiyasi sinf a’zosi bo’lmasa albatta bu funksiyaga mos friend (do’stona) sinf bo’lishi lozim.

Operator funksiyasi quyidagi forma bo’yicha yaratiladi:


qaytarish_tipi sinf_nomi::operator#(argumentlar)
{
// ifoda
}
(+) operatorini qayta yuklash
Bu yerda loc (location) degan sinf yaratilyapti va bu sinfning ikkita longitude va latitude degan maydoni mavjud, show() metodi natijani qaytaradi.
#include
using namespace std;
class loc {
int longitude, latitude;
public:
loc() {}
loc(int lg, int lt) {
longitude = lg;
latitude = lt;
}
void show() {
cout << longitude << " ";
cout << latitude << "\n";
}
loc operator+(loc op2);
};
// + operatorining qayta yuklanishi.
loc loc::operator+(loc op2)
{
loc temp;
temp.longitude = op2.longitude + longitude;
temp.latitude = op2.latitude + latitude;
return temp;
}
int main()
{
loc ob1(10, 20), ob2( 5, 30);
ob1.show(); // natija 10 20
ob2.show(); // natija 5 30
ob1 = ob1 + ob2;
ob1.show(); // natija 15 50
return 0;
}

Demak bu yerda



  • ob3 = ob1 + ob2 + ob3 + ob4; // mumkin!

  • (ob1+ob2).show(x, y); // mumkin!

  • ob2 = ob1 + 50; // mumkin emas!




Download 98 Kb.

Do'stlaringiz bilan baham:
  1   2




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