Versions Compared

Key

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

...

Esimerkki 1. CElain luokan esittely ja toteutus.

    Elain.h-tiedosto:unmigrated-wiki-markup

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:

...



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

...



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.

...



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.

...



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;

...


}