Conan
Moderator
 Inregistrat: acum 18 ani
Postari: 198
|
|
/*Sa se implemente clasa de baza INDIVID. Aceasta va avea ca date membru:varsta si nationalitatea Functiile membru ale clasei individ sunt: 1.Un constructor cu parametru; 2.Un constructor de copiere 3.Un destructor; 4.O functie de afisare; 5.O functie de returnare a nationalitatii.
Din clasa INDIVID se va deriva clasa ANGAJAT. Datele membru ale clasei angajat sunt:nume,prenume,specializare Functiile membru ale clasei derivate angajat: 6.Un constructor cu parametri; 7.Un destructor; 8.O functie de afisare; 9.O functie de modificare a specializarii.
Din clasa ANGAJAT se va deriva clasa PROGRAMATOR. Datele membru ale clasei programator sunt:salariu,tip_programare Functii membru ale clasei progamator sunt: 10.Un constructor cu parametri; 11.Un destructor; 12.O functie de afisare; 13.O functie de modificare a salariului; 14.O functie de returnare a comp tip_programare(tipprg).
Suplimentar vor exista 2 functii friend si 2 functii inline.In main trebuie sa existe 3 obiecte din cele 3 clase ptr care apelam functiile apelate anterior*/
#include<iostream.h> #include<string.h> #include<conio.h> #include<assert.h>
//definirea clasei de baza INDIVID class individ {private: int varsta; char *nationalitate; public: individ(int,char*); individ(individ &x); ~individ(); void afisare(); char *getnatiune(); }; //definirea clasei derivate ANGAJAT din clasa INDIVID class angajat:public individ {char *nume; char *prenume; char *specializare; public: angajat(int,char*,char*,char*,char*); ~angajat(); void afisare(); void set_specializare(char*); }; //definirea clasei derivate PROGRAMATOR din clasa ANGAJAT class programator:public angajat {int salariu; char *tipprg; public: programator(int,char*,char*,char*,char*,int,char*); ~programator(); void afisare(); char *getprogramare(); };
//1.definirea constructorului cu parametru individ::individ(int v,char *n) { varsta=v; nationalitate=new char[strlen(n)+1]; assert(nationalitate!=0); strcpy(nationalitate,n); }
//2.definirea constructorului de copiere ptr clasa individ individ::individ(individ &x) {varsta=x.varsta; nationalitate=new char[strlen(x.nationalitate)+1]; strcpy(nationalitate,x.nationalitate); }
//3.definirea destructorului din clasa individ individ::~individ() {delete nationalitate;}
//4.functia de afisare ptr clasa individ void individ::afisare() {cout<<"\n Persoana este de nationalitate:"<<nationalitate<<varsta;}
//5.functia de returnare a nationalitatii pentru clasa individ char *individ::getnatiune() {return nationalitate;}
//6.definirea constructorului cu parametru din clasa angajat angajat::angajat(char *num,char *pren,char *s):individ(v,n) {nume=new char[strlen(num)+1]; strcpy(nume,num); prenume=new char[strlen{pren}+1]; strcpy{prenume,pren); specializare=new char[strlen(s)+1]; strcpy(specializare,s); varsta=v; }
//7.definirea destructorului din clasa angajat angajat::~angajat() {delete nume; delete prenume; delete specializare; }
//8.functia de afisare pentru clasa angajat void angajat::afisare() {individ::afisare(); cout<<nume<<<<prenume<<specializare;}
//9.functia de modificare a specializarii a clasei derivate angajat void angajat::set_specializare(char *s) {cin>>s; specializare=new char[strlen(s)+1]; strcpy(specializare,s); }
//10.Definirea constructorului progamatorului programator::programator(int sal,char *TP):angajat(num,pren,s):individ(v,n) {salariu=sal; tipprg=new char[strlen(TP)+1]; strcpy(tipprg,TP); }
//11.Definirea destructorului clasei programator programator::~programator() {delete tipprg;}
//13.functia de modificare a salariului pt clasa derivata programator void programator::set_specializare(int sal) {salariu=sal;}
//14.functia de returnare a componenteitip programare ptr clasa programator char *programator::getprogramre() {return tipprg;}
void main() { clrscr(); individ ind(23,"roman" ); angajat a("Pompiliu","Gabriel","programator",20,"roman" ); programator p("Pompiliu","Gabriel",20000,"C++","Pascal","roman","programator" ); ind.afisare(); a.afisare; p.afisare; getch(); }
|
|