Javoblar Dasturlash asoslari


Download 57.96 Kb.
bet26/30
Sana08.03.2023
Hajmi57.96 Kb.
#1250414
1   ...   22   23   24   25   26   27   28   29   30
Bog'liq
Javoblar Dasturlash asoslari

class Anything { private:
static int s_idGenerator;
int m_id; public:
Anything()
{ m_id = s_idGenerator++; } // keyingi obyekt uchun identifikator qiymatini oshirish
int getID() const { return m_id; } }; // Biz s_idGenerator -ni private bo'lsa ham belgilaymiz va initsializatsiyalaymiz. // Bu yaxshi, chunki ta'rif spetsifikatorlarga kirmaydi int Anything::s_idGenerator = 1; // biz ID generatorini 1 qiymatidan boshlaymiz
int main()
{ Anything first; Anything second; Anything third; cout << first.getID() << '\n';
cout << second.getID() << '\n'; cout << third.getID() << '\n';
return 0; }


74. Sinfning statik metodlari Sinfning statik metodlari. Yuqorida biz statik a'zolar o'zgaruvchilari uning obyektlari emas, balki sinfga tegishli a'zolar ekanligini bilib oldik. Statik metodlar. Agar statik a'zolar o'zgaruvchilari public bo'lsa, biz ularga to'g'ridan-to'g'ri sinf nomi va (::) operatori orqali kirishimiz mumkin. Agar statik a'zo o'zgaruvchilari private bo'lsa -chi? Quyidagi kodni ko'rib chiqaylik:
class Value { private: static int s_value; };
int Value::s_value = 3; // private bo'lsa ham, statik a'zoni aniqlash
int main()
{ // Bu yerda Value::s_valuega qanday kirish mumkin, agar s_value private bo'lsa? } Bunday holda, biz main () funksiyasidan Value::s_valuega to'g'ridan-to'g'ri kira olmaymiz, chunki bu a'zo privatedir. Odatda, sinfning private a'zolariga public metodlar orqali kirish mumkin. Biz s_valuega kirish uchun oddiy metodni yaratishimiz mumkin bo'lsa -da, biz metoddan foydalanish uchun shu sinfning obyektini yaratishimiz kerak bo'lardi! Yaxshi variant bor: biz metodni statik qilishimiz mumkin. Statik a'zo o'zgaruvchilari singari, statik metodlar ham bitta sinf obyektiga bog'lanmagan. Mana, yuqoridagi misol, lekin statik metod bilan:
#include
using namespace std;

Download 57.96 Kb.

Do'stlaringiz bilan baham:
1   ...   22   23   24   25   26   27   28   29   30




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