Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 1

Suprancrcarea operatorilor #include<iostream.h> #include<string.

h> class SIR { char *text; //membru privat (singurul) public: SIR(char *sir); //definitia constructorului ~SIR( ) //definitia destructorului { delete text; } int compar(SIR &s1, SIR &s2); //fct. cu 2 param. de tip referinta la sir tipul SIR? int compar(SIR &s1, SIR &s2, int n); //supraincarcarea functiei compar void operator || (SIR &s) //supraincarcarea operatorului "||" { strcat(text, s.text); } void afisare( ) //un obiect de tip SIR nu are acces la un un membru privat decat { //printr-un membru(functie) publica cout<<text; } }; // sfarsitul lui class SIR SIR::SIR(char *sir) { text = new char[strlen(sir)]; //text pointeaza la o zona de memorie alocata cu new strcpy(text, sir); //compara text(privat) cu sir(public) }/* Se aloca memorie pentru text si se copie sir in text*/ int SIR::compar(SIR &s1, SIR &s2) //am definit s1 si s2 (referinta la SIR?) { return strcmp(s1.text, s2.text); //obiect='s1', membru='text' } int SIR::compar(SIR &s1, SIR &s2,int n) { return strncmp(s1.text, s2.text, n); //obiect='s1', membru='text' (obiect.membru) } void main(void) { SIR sir1("abc"), sir2("abcd"); //am creat 2 obiect de tip SIR cout<<"sir1.afisare ";sir1.afisare();cout<<endl; cout<<"sir2.afisare ";sir2.afisare();cout<<endl; cout<<"sir1.compar(sir1, sir2) = "<<sir1.compar(sir1, sir2)<<endl; cout<<"sir1.compar(sir1, sir2, 3) = "<<sir1.compar(sir1, sir2, 3)<<endl; sir1||sir2; //operatoul || este redefinit si concateneaza cele doua siruri cout<<"sir1 ";sir1.afisare();cout<<"\n"; }

You might also like