...
Code Block |
---|
class Perillinen : [määre] Vanhempi
{
...
}
|
Wiki Markup |
---|
jossa \[määre\] on yleensä _public_ (joskus harvoin protected tai private). |
Esimerkki 1. Periytyminen.
Seuraavassa on esitetty ensin yleinen kantaluokka luokka CElain:
Code Block |
---|
class CElain
{
private: // saatavissa vain luokan funktioilla
char m_Kutsumanimi[100];
float m_Massa;
public: // voidaan käyttää luokan ulkopuolelta
void AsetaNimi(char Nimi[]);
char* KysyNimi();
void AsetaMassa(float Massa);
float KysyMassa();
};
|
...
Code Block |
---|
class CKissa : public CElain
{
private: // saatavissa vain luokan funktioilla
public: // voidaan käyttää luokan ulkopuolelta
void Kehraa();
};
|
Luokan Luokka CKissa edustaja perii perii kaikki CElain-luokan ominaisuudet ja toiminnallisuudet (=jäsenmuuttujat ja -funktiot). Mutta ainoastaan protected ja public-tyyppiset CElain-luokan metodit ja jäsenmuuttujattyyppisiin päästään käsiksi CKissa-luokassa. Kts. näkyvyys.
Vanhemman funktioiden ylikirjoitus perillisessä
Perityn luokan funktoita voidaan ylikirjoittaa perillisessä. Kutsuttaessa funktoita perillisen olion kautta suoritetaan perillisessä ylikirjoitettu funktio.
Esimerkki 2. Funktion ylikirjoitus perillisessä.
Code Block |
---|
#include <iostream>
using namespace std;
class CElain
{
public: // voidaan käyttää luokan ulkopuolelta
void TulostaLuokanNimi()
{
cout << "Luokan nimi on CElain." << endl;
}
};
class CLehma : public CElain
{
public:
void TulostaLuokanNimi()
{
cout << "Luokan nimi on CLehma." << endl;
}
};
int main()
{
CLehma lehma;
lehma.TulostaLuokanNimi();
CElain elain;
elain.TulostaLuokanNimi();
}
|
...