Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Muodostimen

...

initialisointilista

...

(Initialization

...

List)

...

C++-kielessä

...

luokan

...

jäsenmuuttujat

...

on

...

tarkoitus

...

alustaa

...

ns.

...

initialisointilistassa.

...

Jotkin

...

muuttujatyypit,

...

kuten

...

vakiomuuttujat

...

ja

...

referenssit,

...

tulee

...

alustaa

...

initialisointilistassa.

...

Lisäksi

...

joissain

...

tapauksissa

...

initialisointilistassa

...

alustaminen

...

on

...

nopeampaa

...

kuin

...

muodostimessa

...

'normaaliin

...

tapaan'.

...

Tämä

...

johtuu

...

siitä,

...

että

...

kun

...

kopioidaan

...

ei

...

sisäänrakennettuja

...

tyyppejä

...

(int,

...

float,

...

jne)

...

joudutaan

...

'normaaliin

...

tapaan'

...

tehtäessä

...

muodostamaan

...

tilapäiskopio

...

kopioitavasta

...

objektista.

...

Tätä

...

ei

...

tapahdu

...

initialisointilistassa,

...

jos

...

Esimerkki

...

1:

...

Luokan

...

jäsenmuuttujan

...

alustaminen

...

initialisointilistassa.

{
Code Block
}
class CElain
{
public:
     CElain();
     void Tulosta();

private:
     int m_Muuttuja1;
     int m_Muuttuja2;
};

CElain::CElain() :    // Initialisointilista alkaa kaksoispisteellä
    m_Muuttuja1(0),   // Alustetaan luokan jäsenmuuttuja m_Muuttuja1 arvoon 0.
    m_Muuttuja2(-57)  // Alustetaan luokan jäsenmuuttuja m_Muuttuja2 arvoon \-57.
{
}

void CElain::Tulosta()
{
     printf("m_Muuttuja1 = %d\n", m_Muuttuja1);
     printf("m_Muuttuja2 = %d\n", m_Muuttuja2);
}

int main()
{
     CElain kissa;
     kissa.Tulosta();
}