Partea5 - 5 Clase derivate Moşteniri Clasele derivate dau posibilitatea de a se defini într-un mod simplu eficient şi flexibil clase noi prin

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 5 Clase derivate. Moşteniri Clasele derivate dau posibilitatea de a se defini într-un mod simplu, eficient şi flexibil clase noi prin adăugarea unor funcţionalităţi claselor deja existente, fără să fie necesară reprogramarea sau recompilarea acestora. Existenţa claselor derivate permite exprimarea relaţiilor ierarhice între conceptele pe care clasele le reprezintă şi asigură o interfaţă comună pentru mai multe clase diferite. De exemplu, entităţile cerc, triunghi, dreptunghi, sunt corelate între ele prin aceea că toate sunt forme geometrice, deci ele au în comun conceptul de formă geometrică. Pentru a reprezenta un cerc , un triunghi sau un dreptunghi , într-un program, trebuie ca aceste clase, care reprezintă fiecare formă geometrică în parte, să aibă în comun clasa care reprezintă în general o formă geometrică . O clasă care asigură proprietăţi comune mai multor altor clase se defineşte ca o clasă de bază. Clasele derivate moştenesc de la o clasă de bază toate caracteristicile acesteia, la care adaugă alte caracteristici noi, specifice ei. 5.1 Clase derivate Se consideră un program care descrie organizarea personalului unei instituţii fără folosirea claselor derivate. O clasă numită Angajat deţine date şi funcţii referitoare la un angajat al instituţiei: class Angajat{ char * nume; float salariu; public: Angajat(); Angajat(char *n, int s, float sal); Angajat(Angajat& r); void display(); }; Angajat::display(){ 1 cout << nume << “ ” << salariu << endl; } Diferite categorii de angajaţi necesită date suplimentare faţă de cele definite în clasa Angajat , corespunzătoare postului pe care îl deţin. De exemplu, un şef de secţie (administator) este un angajat (deci sunt necesare toate datele care descriu această calitate) dar mai sunt necesare şi alte informaţii, de exemplu precizare secţiei pe care o conduce. De aceea, clasa Administator trebuie să includă un obiect de tipul Angajat , la care se adaugă alte date: class Administrator{ Angajat ang; int sectie; public: void display(); }; Posibilitatea de a include într-o clasă date descrise într-o altă clasă are în limbajele obiect-orientate un suport mai eficient, mai flexibil şi mai simplu de utilizat decât simpla includere a unui obiect din tipul dorit: derivarea claselor. Un administrator este un angajat , de aceea clasa Administrator se poate construi prin derivare din clasa Angajat astfel: class Administrator : public Angajat{ int sectie; public: void display(); } Această operaţie care se poate reprezenta schematic prin indicarea unei derivări cu o săgeată (arc direcţionat) de la clasa a derivată la clasa de bază....
View Full Document

This note was uploaded on 08/10/2009 for the course CS UCJ01001 taught by Professor Ionstoica during the Spring '09 term at 東京大学.

Page1 / 35

Partea5 - 5 Clase derivate Moşteniri Clasele derivate dau posibilitatea de a se defini într-un mod simplu eficient şi flexibil clase noi prin

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online