...
Luokan
...
jäsenfunktiot
...
Metodit
...
kirjoitetaan
...
yleensä
...
luokan
...
.cpp
...
-tiedostoon.
...
Tiedoston
...
alkuun
...
sisällytetään
...
#include
...
"tiedosto.h"
...
-lauseella
...
otsikkotiedosto,
...
jossa
...
ko.
...
luokka
...
on
...
esitelty.
...
Kun
...
kirjoitetaan
...
funktion
...
toteutusta
...
.cpp
...
-tiedostoon,
...
tulee
...
muistaa
...
laittaa
...
luokan_nimi::
...
funktion
...
nimen
...
eteen,
...
esim.
...
CElain::
...
.
...
Esimerkki
...
1.
...
CElain
...
luokan
...
esittely
...
ja
...
toteutus.
...
Elain.h-tiedosto:
Code Block |
---|
} class CElain { private: char m_Nimi[100]; float m_Massa; public: void AsetaNimi(char Nimi[]); char* PalautaNimi(); void AsetaMassa(float Massa); float PalautaMassa(); }; {code} |
Elain.cpp-tiedosto:
Code Block |
---|
} #include "Elain.h" void CElain::AsetaNimi(char Nimi[]) { strcpy(m_Nimi, Nimi); // merkkijonon (char muuttuja[]) kopioiminen tapahtuu strcpy()-funktion avulla. } char* CElain::PalautaNimi() { return m_Nimi; } void CElain::AsetaMassa(float Massa) { m_Massa = Massa; } float CElain::PalautaMassa() { return m_Massa; } {code} |
Jäsenfunktioiden
...
toteutus
...
eroaa
...
tavallisen
...
funktion
...
toteutuksesta
...
siinä,
...
että
...
jäsenfunktion
...
paluuarvon
...
ja
...
nimen
...
väliin
...
laitetaan
...
luokan
...
nimi,
...
johon
...
se
...
kuuluu.
...
Useimmiten
...
jäsenmuuttujat
...
ovat
...
yksityisiä
...
ja
...
siksi
...
niiden
...
hakuun
...
joudutaan
...
tekemään
...
asetus
...
ja
...
hakufunktiot.
...
Seuraavassa
...
esimerkki
...
jäsenmuuttujan
...
palauttavasta
...
jäsenfunktiosta.
Code Block |
---|
} int CElain::PalautaMassa() { return m_Massa; } {code} h2. Olion jäsenfunktioiden käyttö Muutettaessa olion ominaisuuksia tai haluttaessa käyttää olion jäsenfunktioita, annetaan ensin |
Olion jäsenfunktioiden käyttö
Muutettaessa olion ominaisuuksia tai haluttaessa käyttää olion jäsenfunktioita, annetaan ensin olion nimi ja sen jälkeen pisteellä erotettuna jäsenfunktio.
Code Block |
---|
olion nimi ja sen jälkeen pisteellä erotettuna jäsenfunktio. {code} Koira.AsetaNimi("Rekku"); {code} |
Kun
...
olio
...
on
...
esitelty
...
osoittimena,
...
käytetään
...
pisteen
...
tilalla
...
nuolta:
Code Block |
---|
} pKissa->AsetaNimi("Misse"); {code} h2. Näkyvyys Luokan metodien |
Näkyvyys
Luokan metodien näkyvyys toimii samalla periaatteella kuin luokan jäsenmuuttujien. Kts. jäsenmuuttujat.
Jäsenfunktioiden parametrit
Jäsenfunktioiden parametreja määriteltäessä on tärkeätä muistaa asettaa arvot vakioiksi, jos niitä ei haluta muuttaa. Parametrit, joiden muutoksien halutaan näkyvän funktioiden ulkopuolella, tulee määritellä osoittimiksi tai referensseiksi.
Esimerkki 2: Jäsenfunktioiden parametrit.
Code Block |
---|
näkyvyys toimii samalla periaatteella kuin luokan jäsenmuuttujien. Kts. [jäsenmuuttujat|koneautomaatio:Jäsenmuuttujat]. h3. Jäsenfunktioiden parametrit Jäsenfunktioiden parametreja määriteltäessä on tärkeätä muistaa asettaa arvot vakioiksi, jos niitä ei haluta muuttaa. Parametrit, joiden muutoksien halutaan näkyvän funktioiden ulkopuolella, tulee määritellä osoittimiksi tai referensseiksi. h3. Esimerkki 2: Jäsenfunktioiden parametrit. {code} class CLuokka { public: void AsetaArvo(const int); // Parametrina const int, koska sen arvoa ei haluta muuttaa int PalautaArvo() // Vakiofunktio, sillä se ei muuta luokan tilaa. private: int m_Arvo; }; {code} |
Toteutukset:
Code Block |
---|
} void CLuokka::AsetaArvo(const int Arvo) { m_Arvo = Arvo; } int CLuokka::PalautaArvo() const { return m_Arvo; } {code} |