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 metodin funktion toteutusta .cpp -tiedostoon, tulee muistaa laittaa luokan_nimi:: metodin funktion nimen eteen, esim. CElain::.
Esimerkki 1. CElain luokan esittely ja toteutus.
ElainElain.h-tiedosto:unmigrated-wiki-markup
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(); |
...
}; |
ElainElain.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; |
...
} |
Metodien Jäsenfunktioiden toteutus eroaa tavallisen funktion toteutuksesta siinä, että metodin jäsenfunktion paluuarvon ja nimen väliin laitetaan luokan nimi, johon metodi se kuuluu. Useimmiten jäsenmuuttujat ovat yksityisiä ja siksi niiden hakuun joudutaan tekemään asetus ja hakumetodithakufunktiot. Seuraavassa esimerkki jäsenmuuttujan palauttavasta metodistajäsenfunktiosta.
Code Block |
---|
int CElain:: |
...
PalautaMassa() |
...
{ |
...
return m_Massa; |
...
} |
Olion
...
jäsenfunktioiden käyttö
Muutettaessa olion ominaisuuksia tai haluttaessa käyttää olion metodeitajäsenfunktioita, annetaan ensin olion nimi ja sen jälkeen pisteellä erotettuna metodijäsenfunktio.
Code Block |
---|
Koira.AsetaNimi("Rekku"); |
Kun olio on esitelty osoittimena, käytetään pisteen tilalla nuolta:
Code Block |
---|
pKissa->AsetaNimi("Misse"); |
...
|
Näkyvyys
Luokan metodien näkyvyys toimii samalla periaatteella kuin luokan jäsenmuuttujien. Kts. jäsenmuuttujat.Metodien
Jäsenfunktioiden parametrit
Metodien 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 metodin funktioiden ulkopuolella, tulee määritellä osoittimiksi tai referensseiksi.
Esimerkki 2:
...
Jäsenfunktioiden parametrit.
Code Block |
---|
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;
};
|
Toteutukset:
Code Block |
---|
void |
private:
int m_Arvo;
};
// Toteutukset:
...
CLuokka::AsetaArvo(const int Arvo) |
...
{ m_Arvo = Arvo; |
...
} |
...
int CLuokka::PalautaArvo() |
...
const |
...
{ return m_Arvo; |
...
} |