Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Wiki Markup
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}