Versions Compared

Key

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

...

Luokan jäsenmuuttujina voi olla myös muita luokkia.  Tätä Tätä kutsutaan koostumiseksi.

Koostumista voidaan ajatella siten että jos Auto-luokka koostuu neljästä Rengas-luokan oliosta, Kori:sta, Moottori:sta, jne. Kaikki nämä ovat omia luokkiaan, joita voidaan käyttää muissakin yhteyksissä. Kun ne pistetään yhteen, ne muodostavat auton, joka koostuu renkaista, korista, moottorista jne.

Esimerkki 1. Koostuminen.

prosessori.h:

Code Block
class CProsessori
{
};

ram.h:

Code Block
class CRAM
{
};

tietokone.h:

Code Block
class CTietokone
{
private:
    CProsessori prossu; // Luodaan prossu-olio CProsessori-luokasta
    CRAM ram;           // Luodaan ram-olio CRAM-luokasta
};

...

Koostettuja luokkien metodeja kutsutaan kuten muitakin luokkien, eli olioiden kautta. Eli: olion_nimi.metodin_nimi();

Anchor
esim2
esim2

Esimerkki 2. Koostettujen olioiden kutsuminen.

prosessori.h:

Code Block

// CProsessori-luokka
class CProsessori
{
public:
    int Laske();
};

ram.h:

Code Block

// CRAM-luokka
class CRAM
{
public:
    void Talleta();
};

tietokone.h:

Code Block
class CTietokone
{
private:
    CProsessori prossu;
    CRAM muisti;

public:
    void Suorita();
};
    

tietokone.cpp:

Code Block

void CTietokone::Suorita()
{
        prossu.Laske();
        muisti.Talleta();
    }
};