...
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 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
...
...
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 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ä. class CElain |
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 Auto { public: char m_Nimi\nimi[100\]; // Eläimen nimi, koko 100 merkkiä. float m_Massamassa; // Eläimen massa. void AsetaArvot(char, float); // Lisätään metodi muuttujien arvojen asettamiseen. }; |
Toteutus (.cpp):
Code Block |
---|
// Metodin AsetaArvot() toteutus. void CElainAuto::AsetaArvot(char Nimi\nimi[\], float Massamassa) { strcpy( m_Niminimi, Nimithis->nimi); // Kopioidaan parametrina saatu Nimi jäsenmuuttujaan m_Nimi. this->massa m_Massa= Massamassa; // Sijoitetaan parametrina saatu Massa jäsenmuuttujaan m_Massa. } |
Pääohjelma (esim main.cpp):
Code Block |
---|
int main() { CElain kissa; kissa Auto auto; auto.AsetaArvot("MiukuNissan", 3.121312); } |
Anchor | ||||
---|---|---|---|---|
|
Esimerkki
...
4.
...
...
...
jäsenmuuttujien
...
käsittely
...
luokan
...
ulkopuolella.
Code Block |
---|
int main() { CElain kissa; kissa.m_Massa = 3.12; strcpy(kissa.m_Nimi, "Miuku Auto Nissan; Nissan.massa = 1312; strcpy(Nissan.nimi, "Sport"); } HUOM muuttujien pitää olla public-tyyppisiä. \\ h4 |
Note |
---|
Muuttujien pitää olla public-tyyppisiä kun halutaan muuttaa jäsenmuuttujia luokan ulkopuolelta. |