You are on page 1of 13

PooAD_sources

#include<iostream.h> #include<string.h> class persoana { int varsta; float salariu; char nume[20]; public: persoana(char *n="Anonim",int v=0,float s=0.):varsta(v),salariu(s) {strcpy(nume,n);} char *spune_nume() {return nume;} int spune_varsta() {return varsta;} }; void main() { persoana p1=persoana("Ion",30,500); persoana p2=p1,p3; const persoana sef("Andrei",35,1400.); const persoana fictiv; cout<<"\np1: "<<p1.spune_nume()<<" "<<p1.spune_varsta(); cout<<"\np2: "<<p2.spune_nume()<<" "<<p2.spune_varsta(); cout<<"\np3: "<<p3.spune_nume()<<" "<<p3.spune_varsta(); p3=sef; cout<<"\nsef:"<<p3.spune_nume()<<" "<<p3.spune_varsta(); p3=fictiv; // fictiv=p1; cout<<"\nfic:"<<p3.spune_nume()<<" "<<p3.spune_varsta(); } p1: Ion 30 p2: Ion 30 p3: Anonim 0 sef:Andrei 35 fic:Anonim

PooAD_sources

#include<iostream.h> #include<string.h> class persoana { int varsta; float salariu; public: char nume[20]; persoana(char *n="Anonim",int v=0,float s=0.):varsta(v),salariu(s) {strcpy(nume,n);} persoana(persoana&); char *spune_nume() {return nume;} int spune_varsta() {return varsta;} }; persoana::persoana(persoana &p) {varsta=p.varsta;} void main() { persoana p1("Ion",30,500),p3; const persoana sef("Andrei",35,1400.); p3=sef; persoana p2=p3; // strcpy(p2.nume,"Vasile"); cout<<"\np1: "<<p1.spune_nume()<<" "<<p1.spune_varsta(); cout<<"\np2: "<<p2.spune_nume()<<" "<<p2.spune_varsta(); cout<<"\np3: "<<p3.spune_nume()<<" "<<p3.spune_varsta(); } p1: Ion 30 p2: # 35 p3: Andrei 35

PooAD_sources

#include<iostream.h> #include<string.h> class persoana { int varsta; char nume[20]; public: persoana(char *n="Anonim",int v=0,float s=0.):varsta(v) {strcpy(nume,n);} ~persoana(); char *spune_nume() {return nume;} int spune_varsta() {return varsta;} }; persoana::~persoana() {}; void main() { persoana p1("Ion",30,500),p2; p2=p1; cout<<"\np1: "<<p1.spune_nume()<<" "<<p1.spune_varsta(); cout<<"\np2: "<<p2.spune_nume()<<" "<<p2.spune_varsta(); persoana(); } p1: Ion 30 p2: Ion 30

PooAD_sources

#include<iostream.h> #include<string.h> #include<stdio.h> class persoana { float salariu; public: int varsta; char *nume; persoana(char *n="Anonim",int v=0,float s=0.):varsta(v),salariu(s) {nume=new char[20];strcpy(nume,n);} // persoana(persoana &p):varsta(p.varsta) // {nume=new char[20];strcpy(nume,p.nume);} // ~persoana(); char *spune_nume() {return nume;} int spune_varsta() {return varsta;} void adresa(); }; //persoana::~persoana() {delete[] nume;}; void persoana::adresa() { cout<< this;} void main() { persoana p1("Ion",30,500); persoana p2=p1; int*p1v=&p1.varsta,*p2v=&p2.varsta; char *p1n=p1.nume,*p2n=p2.nume; printf("\np1v=%#x p1n=%#x",p1v,p1n); printf("\np2v=%#x p2n=%#x",p2v,p2n); cout<<"\n Adresa p1: "; p1.adresa(); cout<<"\n Adresa p2: "; p2.adresa(); cout<<"\np1: "<<p1.spune_nume()<<" "<<p1.spune_varsta(); cout<<"\np2: "<<p2.spune_nume()<<" "<<p2.spune_varsta(); strcpy(p2.nume,"Vasile"); cout<<"\np1: "<<p1.spune_nume()<<" "<<p1.spune_varsta(); cout<<"\np2: "<<p2.spune_nume()<<" "<<p2.spune_varsta(); } p1v=0x12ff78 p1n=0x441fe0 p2v=0x12ff6c p2n=0x441fe0 Adresa p1: 0x0012FF74 Adresa p2: 0x0012FF68 p1: Ion 30 p2: Ion 30 p1: Vasile 30 p2: Vasile 30
4

PooAD_sources

#include<iostream.h> #include<string.h> class persoana { float salariu; public: int varsta; char *nume; persoana(char *n="Anonim",int v=0,float s=0.):varsta(v),salariu(s) {nume=new char[20];strcpy(nume,n);} char *spune_nume() {return nume;} int spune_varsta() {return varsta;} float get_salariu() {return 0.;} float get_salariu(int cod) {if(cod==123) return salariu; else return 0.;} void set_salariu(float salariu) {cout<<"\nOperatie interzisa!";} void set_salariu(float s,int cod) {if(cod==123) salariu=s; else cout<<"\nOperatie interzisa!";} }; void main() { persoana p1("Ion",30,500); cout<<"\np1: "<<p1.spune_nume()<<" "<<p1.spune_varsta() <<" salariu: "<<p1.get_salariu(); cout<<"\np1: "<<p1.spune_nume()<<" "<<p1.spune_varsta() <<" salariu: "<<p1.get_salariu(123); p1.set_salariu(200); p1.set_salariu(800,123); cout<<"\np1: "<<p1.spune_nume()<<" "<<p1.spune_varsta() <<" salariu: "<<p1.get_salariu(123); } p1: Ion 30 salariu: 0 p1: Ion 30 salariu: 500 Operatie interzisa! p1: Ion 30 salariu: 800
5

PooAD_sources

#include<iostream.h> #include<string.h> class persoana { float salariu; public: int varsta; char *nume; persoana(char *n="Vacant",int v=0,float s=0.):varsta(v),salariu(s) {nume=new char[20];strcpy(nume,n);} char *spune_nume() {return nume;} int spune_varsta() {return varsta;} }; void main() { persoana colectiv[]={ persoana("Ana",30,300), persoana("Eva",25,280), persoana("Ion",30,350), persoana() }; enum colectiv {sef,inginer,analist_1,analist_2}; cout<<"\nsef : "<<colectiv[sef].spune_nume(); cout<<"\ninginer : "<<colectiv[inginer].spune_nume(); cout<<"\nanalist_1: "<<colectiv[analist_1].spune_nume(); cout<<"\nanalist_2: "<<colectiv[analist_2].spune_nume(); } sef : Ana inginer : Eva analist_1: Ion analist_2: Vacant

PooAD_sources

#include<iostream.h> #include<string.h> class persoana { float salariu; public: int varsta; char nume[20]; class copil { public: char prenume[20],varsta; persoana *parinte; copil(persoana *parent=NULL,char pren[20]=" ",int v=0):varsta(v),parinte(parent) {strcpy(prenume,pren);cout<<"\n Constructor de clasa copil";} char *spune_nume(); copil(copil &c) {cout<<"\n Constructor de copiere copil";} } c[3]; class casa { public: char adresa[40]; casa(char adr[40]=" ") {strcpy(adresa,adr);} casa(casa &cas) {} char *spune_casa() {return adresa;} } cas[3]; persoana(char n[20]="Anonim",int v=0,float s=0.):varsta(v),salariu(s) {strcpy(nume,n);} char *spune_nume() {return nume;} int spune_varsta() {return varsta;} persoana(persoana &p):varsta(p.varsta),salariu(p.salariu) {strcpy(nume,p.nume);cout<<"\nConstructor de copiere persoana";} }; char *persoana::copil::spune_nume() { static char nume_pren[50]; nume_pren[0]=NULL; if(parinte) {strcpy(nume_pren,strtok(parinte->nume," ")); strcat(nume_pren," "); strcat(nume_pren,prenume);} return nume_pren; }
7

PooAD_sources

void main() { persoana pa("Vasile Ion",40,500); persoana pb=pa; pa.c[1]=persoana::copil(&pa,"Alexandru",15); pa.c[0]=persoana::copil(&pa,"Alex",15); pa.cas[0]=persoana::casa("Str. Neculce Nr.3"); cout<<"\n Ma numesc "<<pa.c[0].spune_nume(); cout<<"\n Ma numesc "<<pa.c[1].spune_nume(); cout<<"\n Ma numesc "<<pa.c[2].spune_nume(); cout<<"\n Locuies la adresa "<<pa.cas[0].spune_casa(); cout<<"\n Locuies la adresa "<<pa.cas[1].spune_casa(); cout<<"\n "<<pb.spune_nume(); cout<<"\n Ma numesc "<<pb.c[0].spune_nume(); cout<<"\n Locuies la adresa "<<pb.cas[0].spune_casa(); } Constructor de clasa copil Constructor de clasa copil Constructor de clasa copil Constructor de clasa copil Constructor de clasa copil Constructor de clasa copil Constructor de copiere persoana Constructor de clasa copil Constructor de clasa copil Ma numesc Vasile Alex Ma numesc Vasile Alexandru Ma numesc Locuies la adresa Str. Neculce Nr.3 Locuies la adresa Vasile Ion Ma numesc Locuies la adresa

PooAD_sources

#include<iostream.h> class cls { public: cls() {cout<<"\n Constructor";} cls(cls &c) {cout<<"\n Constructor copiere";} }; int f(cls c) {return 1;} void main() {cls c; cout<<"\n Return: "<<f(c);} Constructor Constructor copiere Return: 1

// // Transferul obiectelor // #include<iostream.h> class cls { public: cls() {cout<<"\n Constructor";} cls(cls &c) {cout<<"\n Constructor copiere";} }; int f(cls *c) {return 1;} void main() {cls c,*pc=&c; cout<<"\n Return: "<<f(pc);} Constructor Return: 1

PooAD_sources

// Pointeri de date si functii membre #include<iostream.h> #include<string.h> class copil { public: char prenume[20]; copil(char *pren="Nicu") {strcpy(prenume,pren);} }; class persoana { public: int salariu; int varsta; char nume[20]; copil c; persoana(char n[20]="Anonim",int v=0,int s=0.):varsta(v),salariu(s) {strcpy(nume,n);} char *spune_nume() {return nume;} int spune_varsta() {return varsta;} int spune_salariu() {return salariu;} }; void main() { persoana pa("Vasile Ion",40,500),*pp; int persoana::*pdm; int (persoana::*pfm)(); copil persoana::*pc; pdm=&persoana::varsta; pfm=&persoana::spune_salariu; cout<<"\n"<<pa.nume<<" varsta "<<pa.*pdm<<" salariu "<<(pa.*pfm)(); pdm=&persoana::salariu; pfm=&persoana::spune_varsta; cout<<"\n"<<pa.nume<<" varsta "<<(pa.*pfm)()<<" salariu "<<pa.*pdm; pp=&pa; cout<<"\n"<<pp->nume<<" varsta "<<(pp->*pfm)()<<" salariu "<<pp>*pdm; pc=&persoana::c; cout<<"\n"<<(pa.*pc).prenume; cout<<"\n"<<(pp->*pc).prenume; } Vasile Ion varsta 40 salariu 500 Vasile Ion varsta 40 salariu 500 Vasile Ion varsta 40 salariu 500 Nicu Nicu
10

PooAD_sources

// // Pointeri de membri, membri in clasa // #include<iostream.h> #include<string.h> class persoana { float salariu_incadrare; float salariu_efectiv; public: float persoana::*psal; char nume[20]; persoana(char n[20]="Anonim",float si=0.,float se=0.): salariu_incadrare(si),salariu_efectiv(se){strcpy(nume,n);} char *spune_nume() {return nume;} float prima(float procent) {return this->*psal*procent/100;} void set_cheie(int c) { switch(c) { case 1: psal=&persoana::salariu_incadrare; break; case 2: psal=&persoana::salariu_efectiv; break;} } };

void main() { persoana pa("Vasile Ion",400,500),*pp=&pa; pp->set_cheie(1); cout<<"\n"<<pa.nume<<" Prima salariu incadrare: "<<pp->prima(5); pa.set_cheie(2); cout<<"\n"<<pa.nume<<" Prima salariu efectiv : "<<pa.prima(5); } Vasile Ion Prima salariu incadrare: 20 Vasile Ion Prima salariu efectiv : 25

11

PooAD_sources

// // Clase si functii prietene // #include<iostream.h> #include<string.h> class persoana; class medic { public: char *cere_nume(persoana &); int cere_varsta(persoana &); float cere_salariu(persoana &); }; class persoana { int varsta; friend int medic::cere_varsta(persoana &p){return p.varsta;} float salariu; public: char nume[20]; persoana(char n[20]="Anonim",int v=0,float s=0.):varsta(v),salariu(s) {strcpy(nume,n);} char *spune_nume() {return nume;} int spune_varsta() {return varsta;} // }; friend medic;

char *medic::cere_nume(persoana &p) {return (p.spune_nume)();} //float medic::cere_salariu(persoana &p){return p.salariu;} void main() { persoana pa("Vasile Ion",40,500); medic m; // cout<<"\n"<<m.cere_nume(pa)<<" "<<m.cere_varsta(pa); cout<<"\n"<<m.cere_varsta(pa); } 40

12

PooAD_sources

// // Specificatorul static aplicat membrilor unei clase // #include<iostream.h> class persoana { static int total_pers; static int total_b; char sex; public: char nume[20]; persoana(char sx='B') {total_pers++;sex=sx;cout<<"\n Constructor de clasa";} ~persoana() {total_pers--;cout<<"\n Destructor de clasa";} static int spune_total() {return total_pers;} static int spune_total_b() {return total_b;} static void numara_b(persoana *pp) {if(pp->sex=='B') total_b++;} } p[10]; int persoana::total_pers=0; int persoana::total_b=0; void main() { p[0]=persoana('F'); p[5]=persoana('F'); cout<<"\n In cele "<<persoana::spune_total()<<" persoane"; for(int i=0; i<persoana::spune_total();i++) persoana::numara_b(&p[i]); cout<<" sunt "<<persoana::spune_total_b()<<" barbati "; } Constructor de clasa Constructor de clasa Constructor de clasa Constructor de clasa Constructor de clasa Constructor de clasa Constructor de clasa Constructor de clasa Constructor de clasa Constructor de clasa Constructor de clasa Destructor de clasa Constructor de clasa Destructor de clasa In cele 10 persoane sunt 8 barbati Destructor de clasa Destructor de clasa Destructor de clasa Destructor de clasa Destructor de clasa Destructor de clasa Destructor de clasa Destructor de clasa Destructor de clasa Destructor de clasa
13

You might also like