Jos voi sanoa että lapsiluokka on (is-a) isäluokka, niin peritään. Jos sanotaan että lapsiluokassa on (has-a) isäluokka, niin koostetaanKokeillaanpa: "luokka jossa on aika sekunteina" on "aika- luokka". Kuulostaa hyvältä. Siis perimään (taas inline- muoto tilan säästämiseksi):
... kuten aikacla7.cpp class cAikaSek : public cAika { int s; public: void aseta(int ih=0, int im=0, int is=0) { s = is; cAika::aseta(ih,im); lisaa(0); } cAikaSek(int ih=0, int im=0, int is=0) { aseta(ih,im,is); } void lisaa(int lisa_min, int lisa_sek=0) { s += lisa_sek; cAika::lisaa(lisa_min+s/60); s %= 60; } void tulosta(int lf=1) const { cAika::tulosta(0); cout << ":" << setw(2) << s; if ( lf ) cout << endl; } }; int main(void) ... kuten aikacla7.cppTässä tapauksessa kirjoittamisen vaiva oli tasan sama kuin koostamisessakin. Joissakin tapauksissa perimällä pääsee todella vähällä. Otamme tästä myöhemmin esimerkkejä, kunhan pääsemme eroon syntaksin esittelystä.
Lapsiluokka, aliluokka (child class, subclass) on se joka perii ja isäluokka, yliluokka (parent class, superclass) se joka peritään. Käytetään myös nimitystä välitön ali/yliluokka, kun on kyseessä perintä suoraan luokalta toiselle, kuten meidän esimerkissämme.
C++:ssa välitön yliluokka ilmoitetaan aliluokan esittelyssä:
class cAikaSek : public cAika {Jos täytyy viitata yliluokan metodeihin, joille on kirjoitettu aliluokassa oma määrittely, käytetään näkyvyysoperaattoria :: (scope resolution operator):
cAika::lisaa(lisa_min+s/60);Näkyvyysoperaattoria EI käytetä, mikäli samannimistä metodia ei ole aliluokassa.
Perintää kuvataan piirroksessa: