Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h3. Jäsenmuuttujat (Member Variables)

...

Jäsenmuuttujien esittely

...




h4. Jäsenmuuttujien esittely

Jäsenmuuttujat esitellään kuten normaalit muuttujat, tosin class  {}-rakenteen sisällä. Ne esitellään monesti m_-etuliitteellä. Tämä ei  ole mitenkään pakollista, mutta se helpottaa koodin lukemista. Niihin  päästään käsiksi luokasta luodun olion kautta  tai luokan sisällä normaaliin tapaan.

...

 

Esimerkki 1. Jäsenmuuttujien esittely.

...



{code}
class CElain
{
public:   // kts Näkyvyys

...

 

...

   char  m_Nimi

...

[100

...

];   // Eläimen nimi, koko 100 merkkiä.

...

  

...

  float m_Massa;    

...

 

...

  // Eläimen massa.
};
{code}
Luokka CElain pitää sisällään kaksi jäsenmuuttujaa: m_Nimi ja  m_Massa. Niihin päästään käsiksi luokasta luodun olion kautta. Kts  esimerkki 4.

...



h4. Jäsenmuuttujien näkyvyys

...



Jäsenmuuttujaa voi muuttaa luokan metodi, luokan perillisen metodi  tai joku ulkopuolinen funktio. Riippuen siitä mitkä tahot pääsevät  jäsenmuuttujaan kiinni, puhutaan yksityisestä, suojatusta tai  julkisesta jäsenmuuttujasta.

...


||Jäsenmuuttujien näkyvyys eri  paikoissa|

...

| luokan funktiot näkevät || perilliset näkevät || ulkopuoliset näkevät ||
|

...

 private

...

kyllä

...

ei

...

ei

...

protected

...

kyllä

...

kyllä

...

ei

...

public

...

kyllä

...

kyllä

...

kyllä

Esimerkki 2. Jäsenmuuttujien näkyvyys.

...

 | kyllä | ei | ei |
| protected | kyllä | kyllä | ei |
| public | kyllä | kyllä | kyllä |
Esimerkki 2. Jäsenmuuttujien näkyvyys.

{code}
class CElain
{
private:   // saatavissa vain luokan   metodeilla

...

    char m_Nimi

...

[100

...

];

...

    float m_Massa;

...



public:   // voidaan käyttää luokan ulkopuolelta

...

    bool AsetaNimi(char Nimi

...

[

...

]);

...

    bool KysyNimi(char Nimi

...

[

...

]);

...

    bool AsetaMassa(int Massa);

...

    bool KysyMassa();
};

...

Jäsenmuuttujien käyttö

Jäsenmuuttujiin voidaan viitata luokan sisällä ja riippuen näkyvyydestä, myös luokan ulkopuolelta.

Esimerkki 3. Esimerkin 1 jäsenmuuttujien käsittely luokan sisällä.

...


{code}

h4. Jäsenmuuttujien käyttö

Jäsenmuuttujiin voidaan viitata luokan sisällä ja riippuen  näkyvyydestä, myös luokan ulkopuolelta.

Esimerkki 3. Esimerkin 1 jäsenmuuttujien käsittely luokan sisällä.

class CElain
{
public:
    char m_Nimi\[100\];               // Eläimen nimi, koko 100 merkkiä.
    float m_Massa;                  // Eläimen massa.
      void AsetaArvot(char, float);   // Lisätään metodi muuttujien arvojen asettamiseen.
};

...



// Metodin AsetaArvot() toteutus.
void CElain::AsetaArvot(char Nimi\[\], float Massa)
{
    strcpy(  m_Nimi, Nimi);   // Kopioidaan parametrina saatu Nimi jäsenmuuttujaan m_Nimi.
      m_Massa= Massa;        //   Sijoitetaan   parametrina saatu Massa   jäsenmuuttujaan m_Massa.
}

...



int main()

...


{
    CElain kissa;

    kissa.AsetaArvot("Miuku", 3.12);

...


}

...


Esimerkki 4. Esimerkin 1 jäsenmuuttujien käsittely luokan  ulkopuolella.

...



int main()

...


{
    CElain kissa;

    kissa.m_Massa = 3.12

...

;
    strcpy(kissa.m_Nimi, "Miuku");

...


}

...


HUOM muuttujien pitää olla public-tyyppisiä.
\\

h4.