1. for va foreach sikllari


Inkrement va dekrement operatorlarini qayta yuklash


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

30. Inkrement va dekrement operatorlarini qayta yuklash
Inkrement (++) va dekrement (--) operatorlarini qayta yuklash (operator overloading) imkoniyati C++ dasturlash tilida mavjud. Bu operatorlar o'zgaruvchilarni o'zgartirish uchun ishlatiladi.
Inkrement (++) va dekrement (--) operatorlarini qayta yuklash uchun ++ va -- operatorlariga mos funksiyalar sinfning ichida yaratiladi.
Misol uchun, quyidagi kodda Counter sinfiga ++ va -- operatoriga mos funksiya yaratilgan:
cpp
#include
using namespace std;
class Counter {
private:
int count;
public:
Counter() {
count = 0;
}
Counter(int c) {
count = c;
}
void operator++() {
++count;
}
void operator--() {
--count;
}
void display() {
cout << "Count: " << count << endl;
}
};
int main() {
Counter c1(5);
++c1;
c1.display();
--c1;
c1.display();
return 0;
}
Bu kodda Counter sinfiga ++ va -- operatoriga mos funksiya yaratilgan. ++ operatoriga mos funksiya operator++ nomi bilan yaratilgan. operator++ funksiyasi count o'zgaruvchisini inkrement qiladi. - operatoriga mos funksiya esa operator-- nomi bilan yaratilgan. operator-- funksiyasi count o'zgaruvchisini dekrement qiladi.
main funksiyasida c1 obyekti yaratilgan, va ++ va -- operatorlari yordamida count o'zgaruvchisi ustida ishlar bajarilgan. Konsolda count o'zgaruvchisi qiymati chiqariladi.
31. Obyektlarning kompozitsiyasi
Obyektlarning kompozitsiyasi, bir sinfda boshqa sinflarning obyektlarini saqlash imkoniyatini beradi. Bu usuldan foydalanib, bir sinfda boshqa sinflarning obyektlari saqlanadi va ularning barcha funksiyalari va xususiyatlari, o'zining obyekti kabi ishlatiladi.
Misol uchun, bir avtomobil sinfiga, motor sinfida obyekt saqlanishi mumkin. Bu usuldan foydalanib, avtomobil sinfiga motor sinfida obyekt saqlanadi va uning barcha funksiyalari va xususiyatlari avtomobil sinfiga yozilgan funksiyalar yordamida ishlatiladi.
Quyidagi kodda Motor sinfi yaratilgan, va uning ichida start, stop va getSpeed funksiyalari mavjud:
cpp
class Motor {
private:
int speed;
public:
Motor() {
speed = 0;
}
void start() {
speed = 10;
cout << "Motor started" << endl;
}
void stop() {
speed = 0;
cout << "Motor stopped" << endl;
}
int getSpeed() {
return speed;
}
};
Keyinchalik, Car sinfi yaratilgan va uning ichida Motor sinfida obyekt saqlanishi uchun o'zgaruvchi mavjud:
cpp
class Car {
private:
string model;
int year;
Motor motor;
public:
Car(string m, int y) {
model = m;
year = y;
}
void start() {
motor.start();
}
void stop() {
motor.stop();
}
int getSpeed() {
return motor.getSpeed();
}
};
Car sinfi yaratilganida, Motor sinfida obyekt saqlanishi uchun motor o'zgaruvchi yaratiladi. start, stop va getSpeed funksiyalarida esa, motor obyektining mos funksiyalari chaqiriladi.
main funksiyasida Car sinfiga obyekt yaratilgan va start, stop va getSpeed funksiyalari yordamida avtomobilni boshqarish mumkin:
cpp
int main() {
Car car("Toyota", 2022);
car.start();
cout << "Speed: " << car.getSpeed() << endl;
car.stop();
cout << "Speed: " << car.getSpeed() << endl;
return 0;
}
Konsolda avtomobilni boshqarish uchun foydalanilgan funksiyalarning chiqarilishi ko'rsatiladi.




Download 65.67 Kb.

Do'stlaringiz bilan baham:
1   ...   18   19   20   21   22   23   24   25   ...   49




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