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
  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 HaeVakio()    
{         return VAKIO;     }
};

...


public:
   const int PalautaVakio()
   {
       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;
}