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

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;
}