MUHАMMАD АL-XОRАZMIY NОMIDАGI TОSHKЕNT АXBОRОT TЕXNОLОGIYАLАRI UNIVЕRSITЕTI URGANCH FILIАLI
MUSTAQIL ISH № 1
Mavzu: Turlarni almashtirish operatorlari
916 - 22 – guruh talabasi
Bajardi : Raximova Nilufar
Tekshirdi :
XORAZM – 2023
Mavzu: Turlarni almashtirish operatorlari
C++ da, turlarni almashtirish operatorlari (overloading operators) turli amallarni bajarish uchun o'zgartirishlar kiritish imkonini beradi. Bu, C++ ni boshqa dasturlash tillaridan farq qiladi va obyektlarning turli operatorlar orqali qanday ishlashini aniqlashga imkon beradi.
Turlarni almashtirish operatorlari, operator kalit so`zi bilan boshlanadi va bir nechta operatorlarni o'z ichiga oladi, masalan +, -, *, /, %, ==, != va hokazo. Ushbu operatorlar ishlatilganda, C++ operatorning muvaffaqiyatli amalga oshirilishi uchun ularning yo'qolish holatida nima bo'lishi kerakligini biladi.
Operatorlar ko'p mashhur amallarni qayta ishlash uchun ishlatiladi, masalan, + operatori turli turdagi obyektlarni qo'shish uchun ishlatiladi, shuningdek, string turidagi obyektlarni yig'ish uchun ham ishlatiladi. C++ dasturlash tilida siz ham turingizni almashtirish operatorlarini qo'shishingiz mumkin, ya'ni bir obyektni boshqa bir obyektdan ayirish, ko'paytirish yoki boshqa qismlarga bo'lish uchun operatorlarni qo'shishingiz mumkin.
Operatorlarni almashtirishning umumiy sintaksi quyidagicha ko'rinadi:
return_type operator operator_symbol (parameter list) {
// function body
}
Bu sintaksisda return_type operator funksiyasining qaytarish turidir, operator operatorni bildiradigan kalit so'z, operator_symbol muvaffaqiyatli o'tkaziladigan operatorning belgisi, va parameter list muvaffaqiyatli amalga oshirilishi uchun kerakli parametrlar bilan ro'yxatdir.
Boshqacha ko'rsatmalar yordamida turli turdagi operatorlarni o'zgartirish mumkin:
Qo'shish operatori (+): ikki obyektni qo'shadi.
Ayirish operatori (-): ikki obyekt orasidagi farqni topadi.
Ko'paytirish operatori (*): ikki obyektni ko'paytiradi.
Bo'lish operatori (/): bir obyektni boshqa obyektdan bo'lishni olish.
Modul operatori (%): ikki obyektni modul bilan bo'ladiganini hisoblaydi.
Ta`minlash operatori (=): bir obyektni boshqa obyektdan nusxalash.
Oshirish operatori (++): obyektni birga birga oshiradi.
Kamaytirish operatori (--): obyektni birga birga kamaytiradi.
Taqqoslash operatorlari (<, >, <=, >=): ikki obyekt orasidagi taqqoslashni topadi.
Tenglik operatorlari (==, !=): ikki obyekt orasidagi tenglikni aniqlaydi.
And (&&) va or (||) operatorlari: bit toifalariga o'xshash operatorlar yordamida ishlaydi.
Indeks operatori ([ ]): obyektni indeksni olish uchun ishlatiladi.
Yuqoridagi operatorlar bilan bir nechta amallar qilinishi mumkin, ammo bu faqat boshlang'ich ko'rsatkichlar, chunki bir turdagi obyektlarga qo'shimcha operatorlar ham ishlatish mumkin, masalan, <<, >>, +=, -= kabi operatorlar.
C++ dasturlash tilida turingizni o'zgartirish operatorlarini qo'shish yordamida o'z o'zida ajoyib va oddiy syntax yaratishingiz mumkin.
Masalan, agar biz + operatorini Point klassining ikki obyektlarini qo'shish uchun almashtirishni xohlasak, biz quyidagi kodni ishlatamiz:
#include
using namespace std;
class Point {
public:
int x, y;
Point operator+(const Point& other) {
Point res;
res.x = x + other.x;
res.y = y + other.y;
return res;
}
};
int main() {
Point p1 = {2, 3};
Point p2 = {4, 5};
Point p3 = p1 + p2;
cout << p3.x << " " << p3.y << endl;
return 0;
}
Natija
Bu kod "Point" nomli sinfda "x" va "y" nomli ikkita butun tipdagi o'zgaruvchilar mavjud. Sinfdan obyekt yaratilgan holda uning qiymatlarini aniqlash va unga "+ operatori" yordamida boshqa "Point" obyektlari bilan yig'ish imkoniyatiga ega bo'lib, yangi "Point" obyekti qaytariladi.
operator+ funksiyasi "Point" tipi obyektlar qabul qiladi va ikki tomonni qo'shadi, natijada yangi obyekt qaytariladi. Bu funksiya "overloading" operatori yordamida operator "+" ni o'zlashtiradi.
Asosiy funksiya "main"da esa, "p1" va "p2" nomli ikkita "Point" obyekti yaratilgan va ularga qiymatlar berilgan. "p1" va "p2" obyektlari "+" operatori yordamida qo'shiladi va yangi obyekt "p3" ga saqlanadi.
Do'stlaringiz bilan baham: |