Moştenirea, clasele derivate, reutilizarea codului #include
class CLASA //clasa de baza { int x; public: CLASA(int nr = 0) //constructorul; argumentul se initializeaza altfel nu ruleaza { x = nr; //x = 0; } int aduna_nr(int n) { return x + n; } }; class CLASA_D:CLASA //clasa derivata { int altul; public: CLASA_D(int d) //constructorul { altul = d; } int aduna_nr(int n) //reutilizarea codului { return altul + CLASA::aduna_nr(n); } }; void main(void) { CLASA a(1); CLASA_D ad(1); cout< class PATRAT { int x; int generare_patrat() { return x=x*x; } public: PATRAT(int n = 1) // constructorul; dacă argumentul nu e iniţializat error la clasa derivata { x = n; //argumentul este asignat obiectului } int functie() // metoda (functia membru public) { return generare_patrat(); } };
struct PATRAT_LIM:public PATRAT //clasa derivata si clasa de baza(PATRAT) { int limita; PATRAT_LIM(int l ) //constructorul { limita = l; } int functie() //reutilizarea functiei 'int functie()' in PATRAT_LIM { return PATRAT::functie(); //atentie la constructorul clasei de baza PATRAT } }; void main(void) { PATRAT patrat(2); PATRAT_LIM patrat_lim(10); cout<<"patrat = "<<patrat.functie()<<endl; cout<<"patrat_lim = "<<patrat_lim.functie()<<endl; }