...
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 | ||||
---|---|---|---|---|
|
Esimerkki 1. Jäsenmuuttujien esittely.
Code Block |
---|
class Auto h2. 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} h3. *Esimerkki 1*. Jäsenmuuttujien esittely. {code} class CElain { 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
...
...
4.
Anchor | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
Esimerkki 2. Jäsenmuuttujien näkyvyys.
Code Block |
---|
class Auto|#esim4]. {anchor:nakyvyys} h2. 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} *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. {anchor:esim3} *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 | ||||
---|---|---|---|---|
|
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} {anchor |
Anchor | ||||
---|---|---|---|---|
|
Esimerkki 4. Esimerkin 1 jäsenmuuttujien käsittely luokan ulkopuolella.
Code Block |
---|
:esim4} *Esimerkki 4*. [Esimerkin 1|#esim1] jäsenmuuttujien käsittely luokan ulkopuolella. {code} int main() { CElainAuto kissaNissan; kissaNissan.m_Massamassa = 3.121312; strcpy(kissaNissan.m_Niminimi, "MiukuSport"); } {code} {note}Muuttujien pitää olla |
Note |
---|
Muuttujien pitää olla public-tyyppisiä kun halutaan muuttaa jäsenmuuttujia luokan ulkopuolelta. {note} |