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

...

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.

...

 

Anchor
esim1
esim1

Esimerkki 1.

...

Jäsenmuuttujien

...

esittely.

{
Code Block
}
class CElainAuto
{
public:   // kts Näkyvyys
    char  m_Niminimi[100];   // Eläimen nimi, koko 100 merkkiä.
    float m_Massamassa;       // 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.

Anchor
nakyvyys
nakyvyys

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ä

Anchor
esim2
esim2

Esimerkki 2. Jäsenmuuttujien näkyvyys.

Code Block

class Auto

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.

{code}
class CElain
{
private:   // saatavissa vain luokan   metodeilla
    char m_Niminimi[100];
    float m_Massamassa;

public:   // voidaan käyttää luokan ulkopuolelta
    bool AsetaNimi(char Niminimi[]);
    bool KysyNimi(char Niminimi[]);
    bool AsetaMassa(int Massamassa);
    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.

Anchor
esim3
esim3

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

Otsikkotiedosto (.h):

{
Code Block
}
class CElainAuto
{
public:
    char m_Niminimi[100];               // Eläimen nimi, koko 100 merkkiä.
    float m_Massamassa;                  // Eläimen massa.
    void AsetaArvot(char, float);   // Lisätään metodi muuttujien arvojen asettamiseen.
};
{code}

Toteutus

...

(.cpp):

{
Code Block
}
// Metodin AsetaArvot() toteutus.
void CElainAuto::AsetaArvot(char Niminimi[], float Massamassa)
{
    strcpy(m_Niminimi, Nimithis->nimi);  // Kopioidaan parametrina saatu Nimi jäsenmuuttujaan m_Nimi.
    m_Massathis->massa = Massamassa;       // Sijoitetaan parametrina saatu Massa jäsenmuuttujaan m_Massa.
}
{code}

Pääohjelma

...

(esim

...

main.cpp):

{
Code Block
}
int main()
{
    CElainAuto kissaauto;
    kissaauto.AsetaArvot("MiukuNissan", 3.121312);
}
{code}
Esimerkki 

Anchor
esim4
esim4

Esimerkki 4.

...

Esimerkin

...

1

...

jäsenmuuttujien

...

käsittely

...

luokan

...

ulkopuolella.

{
Code Block
}
int main()
{
       CElainAuto kissaNissan;
        kissa.m_MassaNissan.massa = 3.121312; 
    strcpy(kissaNissan.m_Niminimi, "MiukuSport"); }HUOM muuttujien pitää olla public-tyyppisiä.
\\

h4
}
Note

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