You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

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:    
 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.

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

int main()
{    
   CLuokka l;    
   printf("VAKIO = %d", l.HaeVakio());    
  return 0;
}


  • No labels
You must log in to comment.