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
...
1. Vakio jäsenmuuttujan alustaminen.
...
Code Block |
---|
class CYmpyra |
...
{
|
...
public: CYmpyra(); private: |
...
const float m_Pii; // Vakio, koska piin arvo ei muutu.
|
...
};
|
Code Block |
---|
// 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.
Esimerkki 2. Olio vakiona jäsenmuuttujana.
Code Block |
---|
class CKannet
|
...
{
|
...
public: |
...
CKannet(const char Nimi |
...
[ |
...
]) |
...
...
{ |
...
...
}
|
...
} |
...
;
|
...
Code Block |
---|
class CKirja
|
...
{
|
...
public: CKirja(); private: |
...
const CKannet m_Kannet; |
...
// Vakio |
...
}; |
...
Code Block |
---|
// 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 83. Staattisen vakio-jäsenmuuttujan alustaminen.
Code Block |
---|
class CLuokka { public: const int PalautaVakio() { |
...
public: const int HaeVakio()
{ return VAKIO; }
};
...
return VAKIO;
}
private:
const static int VAKIO = -6; // Yksi yleinen tapa on kirjoittaa vakiot ISOILLA KIRJAIMILLA. ei pakollista.
};
|
Code Block |
---|
int main()
{
CLuokka luokka;
printf("VAKIO = %d", luokka.PalautaVakio());
return 0;
}
|