1. for va foreach sikllari


Operatorlarni qayta yuklash


Download 65.67 Kb.
bet19/49
Sana19.06.2023
Hajmi65.67 Kb.
#1625730
1   ...   15   16   17   18   19   20   21   22   ...   49
Bog'liq
дəстурлеу жуаплары100

25. Operatorlarni qayta yuklash
Operatorlarni qayta yuklash (operator overloading) C++ dasturlash tilida obyektlar uchun operatorlar bilan ishlash imkoniyatini beradi. C++ tilida, operatorlar sinf obyektlariga ham ishlatilishi mumkin. Operatorlarni qayta yuklash, operatorlarning sinf obyektlari uchun mos funksiyalarni yaratish imkoniyatini beradi.
Operatorlarni qayta yuklashda operatorlarga mos funksiyalar yaratiladi. Bunday funksiyalarning nomi operatorlarga mos keladi, lekin funksiyalarni yaratishda operator kalit so'zi qo'llaniladi. Misol uchun, + operatoriga mos funksiya quyidagicha yaratiladi:
cpp
class Vector {
public:
int x, y;
Vector operator+(const Vector& v) {
Vector res;
res.x = x + v.x;
res.y = y + v.y;
return res;
}
};
Bu kodda Vector sinfiga + operatoriga mos funksiya qo'shilgan. + operatoriga mos funksiya operator+ nomi bilan yaratilgan. operator+ funksiyasi const Vector& tipidagi v argumentini qabul qiladi va Vector tipidagi obyekt qaytaradi.
main funksiyasida esa + operatori yordamida ikki Vector obyekti qo'shiladi:
cpp
int main() {
Vector v1, v2, v3;
v1.x = 10;
v1.y = 20;
v2.x = 30;
v2.y = 40;
v3 = v1 + v2;
cout << "v3.x = " << v3.x << ", v3.y = " << v3.y << endl;
return 0;
}
Bu kodda main funksiyasida v1 va v2 obyektlari yaratildi. v1 va v2 obyektlari qiymatlarini o'zgartirish yordamlari orqali o'rnatildi. + operatori yordamida v1 va v2 obyektlari yig'ildi va natijaviy qiymat v3 obyektiga saqlandi. Konsolda v3.x va v3.y qiymatlari chiqarildi.
Operatorlarni qayta yuklashda ko'p sonli operatorlarga mos funksiyalar ham yaratilishi mumkin. Qayta yuklashning uchun operatorlar orasida ko'p sonli operatorlar, indeks operatorlari, to'g'ri va yolg'izli operatorlar, tartiblash operatorlari, yonlendirmalar operatorlari va boshqa operatorlar kiritilishi mumkin.
26. Kiritish va chiqarish operatorlarini qayta yuklash
Kiritish (>>) va chiqarish (<<) operatorlarini qayta yuklash (operator overloading) imkoniyati C++ dasturlash tilida mavjud. Bu operatorlar fayl, standart konsol va boshqa turdagi obyektlar bilan ishlashda ishlatiladi.
Kiritish (>>) va chiqarish (<<) operatorlarini qayta yuklash uchun istream va ostream sinflari ishlatiladi. istream sinfi kiritish operatori (>>) uchun, ostream sinfi esa chiqarish operatori (<<) uchun mos funksiyalar yaratiladi.
Misol uchun, quyidagi kodda Person sinfiga >> va << operatorlari qo'shilgan:
cpp
#include
#include
using namespace std;
class Person {
private:
string name;
int age;
public:
Person() {}
Person(string n, int a) {
name = n;
age = a;
}
friend istream& operator>>(istream& is, Person& p) {
is >> p.name >> p.age;
return is;
}
friend ostream& operator<<(ostream& os, const Person& p) {
os << "Name: " << p.name << ", Age: " << p.age;
return os;
}
};
int main() {
Person p;
cout << "Enter name and age: ";
cin >> p;
cout << "Entered data: " << p << endl;
return 0;
}
Bu kodda Person sinfiga >> va << operatorlari qo'shilgan. >> operatoriga mos funksiya operator>> nomi bilan yaratilgan. operator>> funksiyasi istream& tipidagi is argumentini va Person& tipidagi p argumentini qabul qiladi. << operatoriga mos funksiya esa operator<< nomi bilan yaratilgan. operator<< funksiyasi ostream& tipidagi os argumentini va const Person& tipidagi p argumentini qabul qiladi.
main funksiyasida foydalanuvchi kiritgan ma'lumotlar >> operatori yordamida obyektga saqlanadi. Konsolda kiritilgan ma'lumotlar << operatori yordamida chiqariladi.
Kiritish va chiqarish operatorlarini qayta yuklashda yaratiladigan funksiyalar friend kalit so'zi bilan yaratiladi. friend kalit so'zi orqali yaratilgan funksiyalar sinfning ichidagi maxsus funksiyalar bo'lishi mumkin va ular sinfning maxsus xususiyatlaridan foydalanishlari mumkin.

Download 65.67 Kb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   ...   49




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