Кластың статикалық мүшелерi
Кластың мүшелерi static модификаторымен жарияланады. Кластың статикалық мүшесi глобалды айнымалы немесе класс аймағында қол жетерлік функция ретінде қарастыруға болады.
Static модификаторымен жарияланған кластың мәлімет-мүшесі сол кластың барлық өкiлдерiмен бөлiнедi, өйткенi негiзiнен бұл айнымалыда бiр-ақ дана бар болады. Негізінде, кластың ешқандай да өкiлдерi жоқ болса да, статикалық мәлiмет-мүшелеріне жад бөлінеді. Сондықтан, класс статикалық мәлiмет-мүшелерін жариялап қана қоймай, оларды анықтау керек. Мысалы:
class AnyClass
{
public:
AnyClass();
//статикалық мәлімет-мүшені жариялауы static int count;
};
// статикалық мәлімет-мүшесін анықтау int AnyClass::count = 0;
Кластың Public тарауында жарияланған статикалық мәлімет-мүшеге объектінін атауын қолданып келесі конструкция арқылы қол жеткізуге болады:
<объект>.< мәлімет_мүше > немесе
< объектіге_сілтеме> - > < мәлімет_мүше >.
Қарастырылған констуркцияның орнына келесі шақыру формасын қолдану жақсырақ болады:
<класс_атауы>: : < мәлімет_мүше >.
Ол дұрысырақ болады, өйткенi ол барлық кластың жалғыз мәлімет_мүшесі екенін нақтырақ көрсетеді. Егер статикалық мәлімет_мүшелері жабық түрінде жарияланса, оларға қарапайым функция- мүшелері арқылы қол жеткізуге болады. Олардың қол жеткізу процессі басқа мәлiмет-мүшелеріне қол жеткізуден еш айырмашылығы жоқ, бiрақ ол үшiн кластың ең болмаса бiр объектiсін құру керек.
Жоғарыда айтылған бойынша келесi ұсыныстарды беруге болады:
кластың бiрнеше объектiлерінің мәлiметтерін бірге қолдану үшін статикалық мәлімет-мүшелерін қолданыңыз;
статикалық мәлiмет-мүшелеріне қол жеткізу мүмкіндігін protected немесе private тарауларында жариялау арқылы шектеңiз.
Кластың статикалық мәлiмет-мүшесін қолдануының мысалын қарастырайық:
#include class T
{
public:
T(){ObCount++;}
~T(){ObCount--;} static int ObCount;
//... private:
int x;
};
int Т::ObCount = 0; int main()
{
T* pOb = new Т[5];
cout « " Бар " « Т::ObCount « " Т түрі объектері \n"; delete[] рОb;
return 0;
}
Бұл мысалда статикалық мәлімет-мүшесі құрылған объектілерінің есебін жүргiзеді. Программаның нәтижесінде экранда келесі мәліметті аламыз: Т типті 5 объектісі болады.
Достарыңызбен бөлісу: |