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