Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Motenirea Claselor 3
n n principiu, fiecare dat sau funcie membru a clasei Protectia n clasa de baz Modificator de acces utilizat Drept de acces n clasa
de baz se motenete n clasa derivat: n lista claselor de baz derivat
public public public
difer doar protecia acestora private public inaccesibil
n Exist i excepii: protected public protected
n Dac o clas D este derivata din clase (B1, , Bn) n La distrugerea unui obiect al clasei derivate
atunci constructorul clasei B va avea suficieni
parametri pentru a iniializa datele membru ale
compilatorul va executa mai nti destructorul
claselor B1,, Bn. clasei derivate i apoi destructori claselor de
n La crearea unui obiect al clasei D se vor apela mai baz n ordinea invers apelului constructorilor
nti constructorii claselor B1, ,Bn, n ordinea
specificat n lista de motenire, pentru a se iniializa
datele membre ale claselor de baz i apoi se vor
executa intruciunile constructorului clasei D.
void Student::afisare(){
n Implementai clasa Angajat ce deriv din clasa
facultate);
Student(const Student &s);
~Student(); }
Persoana::afisare();
cout<<"Fac:"<<facultate<<endl; Persoana.
void afisare();
};
Student& operator = (Student &p); Student& Student::operator = (Student &s){
cout<<"Apel atribuire Student\n";
n Implementai o ierarhie de clase ce
Student::Student(char *nume, int varsta, char * if (this != &s){
facultate):Persoana(nume, varsta){
this -> facultate = new
Persoana::operator=(s);
delete []facultate;
reprezinta diferite figuri geometrice din plan.
char[strlen(facultate)+1]; facultate = new
strcpy(this -> facultate, facultate);
cout<<"Apel constr. Student\n";
char[strlen(s.facultate)+1];
strcpy(facultate, s.facultate); n Implementati ierarhia de clase Telefon,
} }
Student::Student(const Student &s):
Persoana(s.nume, s.varsta){ }
return *this; Apelul metodei motenite
din clasa Persoana
TelefonFix, TelefonMobil.
facultate = new char[strlen(s.facultate)+1];
strcpy(facultate, s.facultate);
cout<<"Apel Constr. de copiere Student\n";
}