1. for va foreach sikllari
Solishtirish operatorlarini qayta yuklash
Download 65.67 Kb.
|
дəстурлеу жуаплары100
29. Solishtirish operatorlarini qayta yuklash
Solishtirish operatorlarini qayta yuklash (operator overloading) imkoniyati C++ dasturlash tilida mavjud. Bu operatorlar ikki obyektning solishtirilishi va natijaviy qiymatni qaytaradi. Solishtirish operatorlarini qayta yuklash uchun ==, !=, >, <, >=, <= operatorlariga mos funksiyalar sinfning ichida yaratiladi. Misol uchun, quyidagi kodda Person sinfiga == va != operatoriga mos funksiya yaratilgan: cpp #include #include using namespace std; class Person { private: char *name; int age; public: Person(const char *n, int a) { name = new char[strlen(n) + 1]; strcpy(name, n); age = a; } bool operator==(const Person &p) { return (strcmp(name, p.name) == 0 && age == p.age); } bool operator!=(const Person &p) { return !(strcmp(name, p.name) == 0 && age == p.age); } }; int main() { Person p1("John", 25); Person p2("Jane", 30); Person p3("John", 25); if (p1 == p2) { cout << "p1 and p2 are equal" << endl; } else { cout << "p1 and p2 are not equal" << endl; } if (p1 == p3) { cout << "p1 and p3 are equal" << endl; } else { cout << "p1 and p3 are not equal" << endl; } if (p1 != p2) { cout << "p1 and p2 are not equal" << endl; } else { cout << "p1 and p2 are equal" << endl; } if (p1 != p3) { cout << "p1 and p3 are not equal" << endl; } else { cout << "p1 and p3 are equal" << endl; } return 0; } Bu kodda Person sinfiga == va != operatoriga mos funksiya yaratilgan. == operatoriga mos funksiya operator== nomi bilan yaratilgan. operator== funksiyasi name va age o'zgaruvchilarini solishtiradi va true yoki false qiymatini qaytaradi. != operatoriga mos funksiya esa operator!= nomi bilan yaratilgan. operator!= funksiyasi name va age o'zgaruvchilarini solishtiradi va true yoki false qiymatini qaytaradi. main funksiyasida p1, p2, p3 obyektlari yaratilgan, va == va != operatorlari yordamida obyektlar solishtirilgan. Konsolda solishtirilgan obyekt qiymatlari chiqariladi. Download 65.67 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling