Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

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:

Code Block
class CElain
{
private:
    char m_Nimi[100];
    float m_Massa;

public:
      void AsetaNimi(char Nimi[]);
    char* KysyNimiPalautaNimi();

    void AsetaMassa(float Massa);
    float KysyMassaPalautaMassa();
};
    Elain

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::KysyNimiPalautaNimi()
{
    return m_Nimi;
}

void CElain::AsetaMassa(float Massa)
{
    m_Massa = Massa;
}

float CElain::KysyMassaPalautaMassa()
{
    return m_Massa;
}
Metodien 

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

int CElain::KysyMassaPalautaMassa()
{
    return m_Massa;
}

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
 metodien käyttö

Muutettaessa olion ominaisuuksia tai  haluttaessa käyttää olion metodeita, annetaan ensin olion nimi ja sen  jälkeen pisteellä erotettuna metodi.

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.

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

class CLuokka {
public:
   

Metodien parametrit

Metodien 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 ulkopuolella, tulee määritellä osoittimiksi tai referensseiksi.
Esimerkki 2: Metodien parametrit.

class CLuokka
{
public:
    void AsetaArvo(  const int);   // Parametrina const int, koska sen arvoa ei haluta muuttaa
       int PalautaArvo()       const;     // Vakiofunktio, sillä se ei muuta luokan  tilaa.

private:
       int m_Arvo;
};

// 

Toteutukset:

Code Block


void CLuokka::AsetaArvo(  const int Arvo)
{
       m_Arvo = Arvo;
}

int CLuokka::PalautaArvo()   const
{
      return m_Arvo;
}