Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

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
esim1

Esimerkki 1. Staattisen jäsenmuuttujan käsittely.

Tyontekija.h:

Code Block
#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();
};

Tyontekija.cpp:

Code Block
int CTyontekija::s_Laskuri = 0;   // Alustetaan staattinen muuttuja

CTyontekija::CTyontekija()
{
    s_Laskuri++;
    cout << "CTyontekija() - s_Laskuri = " << s_Laskuri << endl;
}

CTyontekija::~CTyontekija()
{
    s_Laskuri--;
}

main.cpp:

Code Block
int main()
{
    CTyontekija Tyontekijat[4];
    for (int i=0; i<4; i++)
    {
         cout << "Tyontekijat[" << i <<"].s_Laskuri = "  << Tyontekijat[i].s_Laskuri << endl;    
    }
}