Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

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

    void AsetaMassa(float Massa);
    float KysyMassa();
};

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

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

float CElain::KysyMassa()
{
    return m_Massa;
}

Metodien

...

toteutus

...

eroaa

...

tavallisen

...

funktion

...

toteutuksesta

...

siinä,

...

että

...

metodin

...

paluuarvon

...

ja

...

nimen

...

väliin

...

laitetaan

...

luokan

...

nimi,

...

johon

...

metodi

...

kuuluu.

...

Useimmiten

...

jäsenmuuttujat

...

ovat

...

yksityisiä

...

ja

...

siksi

...

niiden

...

hakuun

...

joudutaan

...

tekemään

...

asetus

...

ja

...

hakumetodit.

...

Seuraavassa

...

esimerkki

...

jäsenmuuttujan

...

palauttavasta

...

metodista.

Code Block


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

Olion

...

metodien

...

käyttö

...

Muutettaessa

...

olion

...

ominaisuuksia

...

tai

...

haluttaessa

...

käyttää

...

olion

...

metodeita,

...

annetaan

...

ensin

...

olion

...

nimi

...

ja

...

sen

...

jälkeen

...

pisteellä

...

erotettuna

...

metodi.

Code Block

Koira.AsetaNimi("Rekku");
Kun olio on esitelty osoittimena, käytetään pisteen tilalla nuolta:

pKissa->AsetaNimi("Misse"); 

Näkyvyys

...

Luokan

...

metodien

...

näkyvyys

...

toimii

...

samalla

...

periaatteella

...

kuin

...

luokan

...

jäsenmuuttujien.

...

Kts.

...

jäsenmuuttujat.

...

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.

Code Block


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:

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

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