You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Vakiot jäsenmuuttujina

Luokkien jäsenmuuttujat, jotka ovat const-tyyppisiä, tulee aina alustaa initialisointilistassa. Jäsenmuuttujia, jotka on määritelty vakioiksi, ei voi muuttaa ajon aikana.

Esimerkki 6. Vakio jäsenmuuttujan alustaminen.

class CYmpyra
{
private:
    const float m_Pii;        // Vakio, koska piin arvo ei muutu.

public:
    CYmpyra();
};

// Muodostimen toteutus:
CYmpyra::CYmpyra() :
    m_Pii(3.145)              // Kaikki const-tyyppiset muuttujat alustetaan initialisointilistassa.
{
}
Tässä esimerkissä esitellään luokka, jolla on yksi jäsenmuuttuja, joka on vakio. Se täytyy alustaa muodostimen initialisointilistassa.

Esimerkki 7. Olio vakiona jäsenmuuttujana.

class CKannet
{
public:
    CKannet(const char Nimi[])
   

Unknown macro: {    }

};

class CKirja
{
private:
    const CKannet m_Kannet;   // Vakio

public:
    CKirja();
};

// Muodostimen toteutus:
CKirja() :
    m_Kannet("Moby Dick")    // Tämä kutsuu CKannet-luokan muodostinta.
{
}

Tässä esimerkissä käytetään koostumista. HUOM! Initialisointilistassa kutsutaan nyt CKannet-luokan muodostinta.

Staattiset vakiot jäsenmuuttujina

Luokkien jäsenmuuttujat, jotka ovat const static-tyyppisiä, pitää alustaa suoraan esittelyssä, sillä ne ovat luokkakohtaisia (static) ja vakioita (const).

Esimerkki 8. Staattisen vakio-jäsenmuuttujan alustaminen.

class CLuokka
{
private:
     const static int VAKIO = -6; // Yksi yleinen tapa on kirjoittaa vakiot ISOILLA KIRJAIMILLA. ei pakollista.

public:
    const int HaeVakio()
   

Unknown macro: {        return VAKIO;    }

};

int main()
{
    CLuokka l;
    printf("VAKIO = %d", l.HaeVakio());
    return 0;
}


  • No labels
You must log in to comment.