9- ma’ruza mavzu: do’ST FUNKSIYA VA do’st sinflar
Download 50.06 Kb.
|
9- ma\'ruza matni
- Bu sahifa navigatsiya:
- ClassName::static_member
- static int get_ob() { return ob_counter; } }; int Proper::ob_counter; int main() {
- Obyektlarni funksiyaga yuborish
- Obyektlarni o’zlashtirish
};
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_member ko’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; } Download 50.06 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling