Conan
Moderator
 Inregistrat: acum 17 ani
Postari: 198
|
|
/*Redefinirea operatorilor aritmetici +,-,*,/ ;a operatorilor de incrementare ++,--;a operatorului ==, si a operatorilor de deplasare << si >> */
#include <stdio.h> #include <conio.h> #include <iostream.h> #include <math.h>
class complex {private: float x,y; float m; public: complex(); complex(float,float); // ~complex(); complex operator+(complex); complex operator++(); complex operator--(); friend complex operator-(complex,complex); friend complex operator*(complex,complex); friend complex operator/(complex,complex); friend complex operator== (complex,complex); friend ostream &operator<<(ostream &out, complex &z); friend istream &operator>>(istream &in, complex &z); void setnr(); void afisare(); void modul(); };
//definire constructor implicit complex::complex() { x=0;y=0; }
//definire constructor cu parametru complex::complex(float X,float Y) { x=X;y=Y; }
/*complex::~complex() { cout<<"\ns-a apelat destructorul"; } */
//functie de afisare void complex::afisare() { cout<<"\nre="<<x; cout<<"\nim="<<y; cout<<"\nnr. este: "<<x<<"+"<<y<<"i"; }
//functie de setare a numarului complex void complex::setnr() { cout<<"x=";cin>>x; cout<<"y=";cin>>y; }
//redefinirea operatorului + complex complex:: operator+(complex z) {complex r; r.x=z.x+x; r.y=z.y+y; return r; }
//redefinirea operatorului - complex operator-(complex z1,complex z2) {complex z; z.x=z1.x-z2.x; z.y=z1.y-z2.y; return z; }
//redefinirea operatorului * complex operator*(complex z1,complex z2) {complex z; z.x=z1.x*z2.x-z1.y*z2.y; z.y=z2.x*z1.y+z1.x*z2.y; return z; }
//redefinirea operatorului / complex operator/(complex z1,complex z2) {complex z; z.x= (z1.x*z2.x+z1.y*z2.y)/(z2.x*z2.x-z2.y*z2.y); z.y= (z2.x*z1.y-z1.x*z2.y)/(z2.x*z2.x-z2.y*z2.y); return z; }
//redefinirea operatorului++ complex complex::operator++() {complex r; r.x=x+1; r.y=y+1; return r; }
//redefinirea operatorului -- complex complex::operator--() {complex r; r.x=x-1; r.y=y-1; return r; }
//redefinirea operatorului == /*complex operator== (complex z1,complex z2) {complex r; if ((r.x==x) && (r.y==y)) return 1; else return 0; } */
//redefinirea operatorului de deplasare << ostream &operator<<(ostream &out, complex &z) {out<<"\n Nr complex este "<<z.x<<"+i*"<<z.y; return out; }
//redefinirea operatorului de deplasare >> istream &operator>>(istream &in, complex &z) {cout<<"\n Dati nr complex este "; in>>z.x>>z.y; return in; }
//functie de calcul a modulului unui numar complex void complex::modul() { m=sqrt(x*x+y*y); cout<<"\nmodulul: "<<m; }
void main() { clrscr(); complex z1(2,2); complex z2(1,1); complex z3; //complex z; //z.setnr(); //z.afisare(); //z.modul(); z1=z1++; z1.afisare(); z2=z2--; z2.afisare(); cin>>z3; cout<<z3; cout<<z2; getch(); }
|
|