...
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 | ||||
---|---|---|---|---|
|
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(); } }; |