Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Jäsenmuuttujat

...

(Member

...

Variables)

...

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 Block
}
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.

...

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.

Code Block
  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.

{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();
};
{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ä.

Otsikkotiedosto 

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

Otsikkotiedosto (.h):

{
Code Block
}
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.
};
{code}

Toteutus

...

(.cpp):

{
Code Block
}
// 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.
}
{code}

Pääohjelma

...

(esim

...

main.cpp):

{
Code Block
}
int main()
{
    CElain kissa;
    kissa.AsetaArvot("Miuku", 3.12);
}
{code}

Esimerkki

...

4.

...

Esimerkin

...

1

...

jäsenmuuttujien

...

käsittely

...

luokan

...

ulkopuolella.

{
Code Block
}
int main()
{
       CElain CElain kissa;
      kissa   kissa.m_Massa = 3.12; 
    strcpy(kissa.m_Nimi, "Miuku"); }HUOM muuttujien pitää olla public-tyyppisiä.
\\

h4
}
Note

Muuttujien pitää olla public-tyyppisiä kun halutaan muuttaa jäsenmuuttujia luokan ulkopuolelta.