Documente Academic
Documente Profesional
Documente Cultură
Mostenirea simpla
Mostenirea simpla este o relatie binara intre 2 clase,una fiind clasa de baza,alta fiind clasa derivata.Acea
clasa derivate va prelua toate proprietatile clasei de baza pe care o mosteneste.Dintre problem aparute
pe principiul mostenirii sunt urmatoarele:
-daca intr-o clasa derivate declaram un obiect al unei clase de baza urmand ca acesta sa apeleze
elemente protejate in ierarhie definite in clasa de baza,acestea nu vor fi accesibile
-nu se pot transfera informatii dinspre clasa de baza inspre clasa derivata decat in urma supraincarcarii
explicite a operatorului =(operatorul de atribuire)
-constructorii si destructorii sunt metode care nu se mostenesc,astfel incat constructorul unei clase
derivate apeleaza intai constructorul clasei de baza,in cazul destructorilor,operatiunea facandu-se invers
-daca in intermediul unei ierarhii de clasa denumirile unei date sau antetele unor metode
coincid,prioritare vor fi cele din clasa derivata, cele din clasa de baza fiind accesate prin:
nume_clasa_baza::data/metoda;
class baza
{
private:
date|metode
protected:
date|metode
public:
date|metode
};
Explicatii:
Dupa cum se vede apare un nou specificator de protectie(protected) utilizabil pentru accesibilitatea
datelor intr-o ierarhie de clase.
In linia de mostenire apare private/public, utilizarea lor se poate observa in tabelul de mai jos cu
controlul accesului la membrii mosteniti:
Se considera o clasa Pereche, ce contine date despre o pereche de numere intregi si un constructor ce
va permite initierea la declaratie a informatiei. Din clasa Pereche, deriva o clasa Complex, care, preia
informatia din Pereche, ataseaza un nume, si prelucreaza numerele complexe, prin afisarea si suma
acestora. De asemenea, se cere supraîncarcarea operatorului “=” pentru realizarea operaţiilor de
conversie dinspre Pereche spre Complex.
#include<iostream>
using namespace std;
class pereche
{
protected:
int a,b;
public:
pereche(int x, int y)
{
a=x;
b=y;
}
};
int main()
{
complex z1(3,4,"z1"), z2(-6,2,"z2");
system("pause");
return (0);
}
#include<iostream>
using namespace std;
class pereche
{
protected:
int a,b;
public:
pereche(int x, int y)
{
a=x;
b=y;
}
int& parte_re()
{
return a;
}
int& parte_im()
{
return b;
}
};
};
int main()
{
complex z1(3,4,"z1"), z2(-6,2,"z2");
pereche t(5,-9);
complex z3(0,0,"z3");
z3=t;
cout<<z3;
system("pause");
return (0);
}