9- ma’ruza mavzu: do’ST FUNKSIYA VA do’st sinflar


Download 50.06 Kb.
bet9/12
Sana10.02.2023
Hajmi50.06 Kb.
#1186380
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
9- ma\'ruza matni

};
int main() {
TwoValues ob(10, 20);
Min m;
cout << m.min(ob);
return 0;
}

  1. 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;
}



  1. 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;
}


  1. Download 50.06 Kb.

    Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




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