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 |
---|
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 72. Olio vakiona jäsenmuuttujana.
Code Block |
---|
class CKannet { publicpublic: CKannet CKannet(const char Nimi[]) \{ \} } ; |
Code Block |
---|
class CKirja { public: CKirja(); private: const CKannet m_Kannet; // Vakio public: CKirja(); }; |
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() { return VAKIO; } private: const static int VAKIO = -6; // Yksi yleinen tapa on kirjoittaa vakiot ISOILLA KIRJAIMILLA. ei pakollista. public: const int HaeVakio() { return VAKIO; } }; |
Code Block |
---|
int main() \\{ \{ CLuokka lluokka; printf("VAKIO = %d", lluokka.HaeVakioPalautaVakio()); return 0; \} |