Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h4. 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 public:     CKannet(const char Nimi\[\])     \{     \}
} };
;
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.
 \\

  h4. 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:
     public:     const int HaeVakio()
   
     {         return VAKIO;     }
};
int main()
{     CLuokka l;     printf("VAKIO = %d", l.HaeVakio());     return 0; }

----
h4.