h4. Staattiset jäsenmuuttujat
Joissain tapauksissa luokan olioilla on ominaisuuksia, jotka ovat yhteisiä kaikille olioille, esim tieto siitä kuinka monta olioita luokasta on luoto. Tällaiset muuttujat voidaan luoda *staattisina*, jolloin +jokaisella luokasta tehdyllä oliolla näkyy sama arvo+.
{anchor:esim1}
Esimerkki 1. Staattisen jäsenmuuttujan käsittely.
*Tyontekija.h:*
{code}
#include <iostream>
using namespace std;
class CTyontekija
{
private:
static int s_Laskuri; // laskuri laskee työntekijöiden määrää
public:
CTyontekija(); // kts. Muodostimet ja hajoittimet
~CTyontekija();
};
{code}
*Tyontekija.cpp:*
{code}
int CTyontekija::s_Laskuri = 0; // Alustetaan staattinen muuttuja
CTyontekija::CTyontekija()
{
s_Laskuri++;
cout << "CTyontekija() - s_Laskuri = " << s_Laskuri << endl;
}
CTyontekija::~CTyontekija()
{
s_Laskuri--;
}
{code}
*main.cpp:*
{code}
int main()
{
CTyontekija Tyontekijat[4];
for (int i=0; i<4; i++)
{
cout << "Tyontekijat[" << i <<"].s_Laskuri = " << Tyontekijat[i].s_Laskuri << endl;
}
}
{code}
|