}; int main() { TwoValues ob(10, 20); Min m; cout << m.min(ob); return 0; } Sinfning statik ma’lumotlari
Class o’zgaruvchisini static deb e’lon qilinganda kompilyator uni obyektlar uchun bitta nusxa ko’rinishida yaratadi. Ya’ni bir nechta obyekt bitta o’zgaruvchidan foydalanadi. Static o’zgaruvchi 0 ga inisalizatsiya qilinadi. Class static a’zolariga murojat qilish ClassName::static_memberko’rinishida murojat qilinadi, obyekt orqali ham murojat qilsa bo’ladi. Static o’zgaruvchini static kalit so’zi bilan e’lon qilinadi.
E’lon qilish: class someclass { public: static int ob; };
Static maydonlardan foydalanish class Proper { public: static int ob_counter; }; int Proper::ob_counter; int main() { Proper a; cout<
cout< return 0; }
Static metodlar Class metodlarini static o’zgaruvchilar kabi e’lon qilsa bo’ladi. Static metodlar static a’zolarga murojat qiladi.
E’lon qilish: class someclass { public: static int ob; static int get_ob() { return ob; } };
Statik metodlardan foydalanish class Proper { public: static int ob_counter; static int get_ob() { return ob_counter; } }; int Proper::ob_counter; int main() { cout<
cout<
return 0; }
:: operatoridan foydalanish Biz bilamizki :: operatori class a’zolariga murojat qilish uchun ishlatiladi. Quyidagi holat berilgan:
int i;
void f() {
Ekranga nima chiqadi?
int i; i = 10;
}
int main() {
f();
cout< return 0;
}
:: operatori orqali global o’zgaruvchiga murojat qilish quyidagicha amalga oshiriladi.
int i;
void f() {
int i;
::i = 10;
}
int main() {
f();
cout< return 0;
}
Obyektlarni funksiyaga yuborish
Obyektlarni funksiyaga yuborish oddiy o’zgaruvchilarni yuborgan kabi amalga oshiriladi.
class XY { … };
void f(XY a) { … }
Misol asosida ko’rib o’tamiz
Funksiya obyekt qaytaradi Funksiya obyekt qaytarishi uchun qaytariladigan obyektning toifasi funksiyaning qaytarish tipiga ko’rsatilishi kerak.
Misol:
class XY { … };
XY f() { … return object; }
XY a = f();
Misol-7 class Sum {
int a, b;
public: int plus() { cout< void set_nums(int x, int y) { a = x; b = y; }
};
Sum f() {
x.set_nums(4,5);
return x; // Funksiya Sum toifadagi obyekt qaytaradi }
int main() {
Sum a;
a = f(); // a obyektga f() dan qaytgan obyekt o’zlashtirildi a.plus();
return 0;
}
Obyektlarni o’zlashtirish class Sum {
int a, b;
public: int plus() { cout< void set_nums(int x, int y) { a = x; b = y; }
};
int main() {
Sum a , b;
a.set_nums(3,2);
b = a; // a obyekt b obyektga o’zlashtirildi b.plus();
return 0;
}