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

 esim. olioiden lukumäärä. Tällaiset  muuttujat voidaan luoda staattisina, jolloin jokaisella luokasta  tehdyllä oliolla näkyy sama arvo.

Esimerkki 5. Staattisen jäsenmuuttujan käsittely.

\#include <iostream>

using namespace std;

class CTyontekija
{
private:
&nbsp;&nbsp;&nbsp;    static int s_Laskuri; &nbsp; &nbsp; &nbsp;        // laskuri laskee työntekijöiden määrää

public:
&nbsp;&nbsp;&nbsp;&nbsp;CTyontekija    CTyontekija(); &nbsp; &nbsp; &nbsp; &nbsp;          &nbsp; &nbsp; &nbsp;     // kts. Muodostimet ja  hajoittimet
&nbsp;&nbsp;&nbsp;&nbsp;~CTyontekija    ~CTyontekija();
};

Tyontekija.cpp:

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

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

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

main.cpp:

Code Block
int main()
{
&nbsp;&nbsp;&nbsp;    CTyontekija Tyontekijat\[4\];
&nbsp;&nbsp;&nbsp;    for (int i=0; i<4; i++)
    {
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;         cout << "Tyontekijat\[" << i <<"\].s_Laskuri = "  <<&nbsp;Tyontekijat\<< Tyontekijat[i\].s_Laskuri << endl;
&nbsp;&nbsp;&nbsp; }
}
Ajakaa yllä oleva esimerkki ja selvittäkää miksi se käyttäytyy sillä  tavalla.\\

h4.    
    }
}