Documente Academic
Documente Profesional
Documente Cultură
Mostenirea:
Mecanismul prin care o clasă preia structura (datele membre) şi comportamentul
(metodele) unei alte clase la care adaugă elemente specifice.
Stabileste o relatie de tipul "este un/este o" (is-a)
Clasă de baza = clasa de la care se preia structura şi comportamentul
Clasa derivată = clasa care preia structura şi comportamentul
Moştenirea multiplă, reprezintă prin sine moştenirea de la două sau mai multe clase. Pentru
a înţelege pentru ce ne trebuie moştenirea multiplă trebuie să ne amintim, că moştenirea
simplă nu rezolvă toate problemele, aşa cum câteodată ne obligă să alegem dintre două clase
de bază potrivite.
Este interesantă părerea lui Buch referitor la acest mecanism: „Moştenirea multiplă este ca o
paraşută: de regulă, nu ne trebuie, dar, când întâmplător o să ne trebuiască, o să ne pară rău
dacă nu o să fie la îndemână”
Exemplu:
#include<iostream>
using namespace std;
class Person {
public:
Person(int x) { cout << "Person::Person(int ) called" << endl; }
Person() { cout << "Person::Person() called" << endl; }
};
int main() {
TA ta1(30);
}
Accesibilitate:
In limbajul C++ incapsularea poate fi fortata prin controlul accesului, deoarece toate datele si
functiile membre sunt caracterizate printr-un nivel de acces. Nivelul de acces la membrii unei
clase poate fi:
private: membrii (date si metode) la care accesul este private pot fi accesati doar prin
metodele clasei (nivel acces implicit);
protected: acesti membri pot fi accesati prin functiile membre ale clasei si functiile
membre ale clasei derivate;
public: membrii la care accesul este public pot fi accesati din orice punct al domeniului
de existenta a clasei respective;
friend: acesti membri pot fi accesati prin functiile membre ale functiei prietene
specificate.
Publica, unde in clasa derivata nivelul de acces al membrilor este acelasi ca in clasa de
baza;
Privata, unde membrii protected si public din clasa baza devin private in clasa derivata;
Protejata (la compilatoarele mai noi).