Documente Academic
Documente Profesional
Documente Cultură
1. Pentru clasa fractie, cu datele membre numarator si numitor, intregi, sa se supraincarce operatorii
a) - unar, care schimba semnul unui obiect din clasa fractie
b) -- unar, forma postfixata, pentru un obiect din clasa fractie
2. Pentru clasa complex, cu datele membre p_reala si p_imagin, reale, sa se supraincarce operatorul * binar care
realizeaza operatii de forma c1*c2, unde c1, c2 sunt de tip complex, prin metoda a clasei
#include <iostream>
#include <string.h>
#include <stdio.h>
class fractie{
int numarator, numitor;
public:
fractie(int n, int m);
friend ostream& operator<<(ostream& o, fractie&f);
fractie& operator-();
fractie operator--(int);
};
fractie fractie::operator--(int){
fractie p = *this;
numarator -= numitor;//(decrementam valoarea cu 1, deci la numarator)
return p;
}
1
pct2 - clasa complex
*/
class complex{
double p_reala,p_imagin;
public:
complex(double r, double i);
complex operator *(complex& x);
friend ostream& operator<<(ostream& o, complex&f);
};
/*
pct 3
*/
class sir{
int lung; //lungime sir
char* sirul; //pointer la primul caracter din sir
public:
sir(const char*);//constructor, pentru test
~sir();//avem nevoie de destructor, pentru ca avem alocare dinamica in constructor
char operator[](int index);
};
sir::~sir(){
2
delete sirul;
}
int main(){
//teste functionare pentru pct1
cout<<"--------------test pentru fractie-----------------\n";
fractie f1(10,10);
cout<<"original: "<<f1<<"\n";
cout<<"minus unar: "<<-f1<<"\n";//minus unar
fractie f2(11,10);
fractie f3 = f2--;
cout<<"inainte de decrementare: "<<f3<<"\n";//post decrementat, deci se intoarce valoarea 11/10
cout<<"dupa decrementare: "<<f2<<"\n";//acum este dupa decrement, deci 1/10
getchar();
}