Sunteți pe pagina 1din 2

#pragma once

#include <iostream>
#include "math.h"

class Complex
{
double a,
double b;
public:
/************************** constructori **************************************/
//constructor de initializare
Complex(double x=0.0, double y=0.0):a(x), b(y){};

//constructor de copiere
Complex(const Complex &c)
{
a = c.a;
b = c.b;
}

/************************** supraincarcare operatori *************************/


//supraincarcarea operatorului = (egal) printr-o functie membra a clasei
Complex& operator=(const Complex &c)
{
a = c.a;
b = c.b;
return *this;
}

//* //supraincarcarea operatorului + (plus) printr-o functie membra a clasei


Complex operator+(const Complex &c)
{
Complex tmp(*this);
tmp.a += c.a;
tmp.b += c.b;
return tmp;
}

//supraincarcarea operatorului - (minus) printr-o functie prietena globala


//(nemembra a clasei)
friend Complex operator-(const Complex &a, const Complex &b)
{
Complex tmp(a);
tmp.a -= b.a;
tmp.b -= b.b;
return tmp;
}
//* //supraincarcarea operatorului prefixat ++ (incrementare) printr-o functie
//membra a clasei
Complex& operator++(void)
{
a += 1.0;
b += 1.0;
return *this;
}
//supraincarcarea operatorului prefixat -- (decrementare) printr-o functie
//prietena globala (nemembra a clasei)
friend Complex& operator--(Complex &c)
{
c.a -= 1.0;
c.b -= 1.0;
return c;
}

//* //supraincarcarea operatorului postfixat ++ (incrementare) printr-o functie


//membra a clasei
Complex operator++(int)
{
Complex tmp(*this);
a += 1.0;
b += 1.0;
return tmp;
}
//supraincarcarea operatorului postfixat -- (decrementare) printr-o functie
//prietena globala (nemembra a clasei)
friend Complex operator--(Complex &c, int)
{
Complex tmp(c);
c.a -= 1.0;
c.b -= 1.0;
return c;
}

//* //supraincarcarea operatorului double() de conversie de tip


operator double() const
{
return sqrt(a*a + b*b);
}

//* //supraincarcarea operatorului de intrare


friend std::istream& operator>>(std::istream& input, Complex &c)
{
return input >> c.a >> c.b;
}
//supraincarcarea operatorului de iesire
friend std::ostream& operator<<(std::ostream& output, Complex &c)
{
return output << c.a << "+i" << c.b;
}
//destructor
~Complex(void){};
};

S-ar putea să vă placă și

  • Realismul in Literatura
    Realismul in Literatura
    Document5 pagini
    Realismul in Literatura
    Kaizoku Mika
    88% (8)
  • Joc Si Joaca
    Joc Si Joaca
    Document4 pagini
    Joc Si Joaca
    Florin Condurat
    100% (6)
  • Agentii Patogeni
    Agentii Patogeni
    Document22 pagini
    Agentii Patogeni
    Florin Condurat
    Încă nu există evaluări
  • Sistemul Muscular
    Sistemul Muscular
    Document28 pagini
    Sistemul Muscular
    Florin Condurat
    Încă nu există evaluări
  • Tehnologia Turnarii
    Tehnologia Turnarii
    Document136 pagini
    Tehnologia Turnarii
    IFrunze
    67% (3)
  • Documentatie Condurat Florin C1A
    Documentatie Condurat Florin C1A
    Document7 pagini
    Documentatie Condurat Florin C1A
    Florin Condurat
    Încă nu există evaluări
  • Lab 9 - 2020
    Lab 9 - 2020
    Document3 pagini
    Lab 9 - 2020
    Florin Condurat
    Încă nu există evaluări
  • Laborator 7 - 2020
    Laborator 7 - 2020
    Document2 pagini
    Laborator 7 - 2020
    Florin Condurat
    Încă nu există evaluări
  • Lab 7 2019
    Lab 7 2019
    Document2 pagini
    Lab 7 2019
    Florin Condurat
    Încă nu există evaluări
  • Documentatie Condurat Florin C1A
    Documentatie Condurat Florin C1A
    Document7 pagini
    Documentatie Condurat Florin C1A
    Florin Condurat
    Încă nu există evaluări
  • Lab - 11 - Detectie Peak - 2020
    Lab - 11 - Detectie Peak - 2020
    Document4 pagini
    Lab - 11 - Detectie Peak - 2020
    Florin Condurat
    Încă nu există evaluări
  • Curente Avangardiste
    Curente Avangardiste
    Document2 pagini
    Curente Avangardiste
    Florin Condurat
    Încă nu există evaluări
  • Plagile
    Plagile
    Document15 pagini
    Plagile
    Florin Condurat
    100% (2)
  • Seceta
    Seceta
    Document2 pagini
    Seceta
    Florin Condurat
    Încă nu există evaluări
  • Sistemu Osos
    Sistemu Osos
    Document31 pagini
    Sistemu Osos
    Mădălina Pinciuc
    Încă nu există evaluări
  • Aparatul Respirator
    Aparatul Respirator
    Document20 pagini
    Aparatul Respirator
    Andreea Moraru
    Încă nu există evaluări
  • Punctia Venoasa La EDS
    Punctia Venoasa La EDS
    Document2 pagini
    Punctia Venoasa La EDS
    Florin Condurat
    Încă nu există evaluări
  • Referat Ecaterina A II A
    Referat Ecaterina A II A
    Document2 pagini
    Referat Ecaterina A II A
    Florin Condurat
    100% (1)
  • Radiatii
    Radiatii
    Document6 pagini
    Radiatii
    Florin Condurat
    Încă nu există evaluări
  • Stilurile Functionale
    Stilurile Functionale
    Document3 pagini
    Stilurile Functionale
    Vlad Turcescu
    Încă nu există evaluări
  • Harap Alb Rezumat
     Harap Alb Rezumat
    Document3 pagini
    Harap Alb Rezumat
    Oana Sînziana Streşinã
    100% (1)
  • Sao Paulo
    Sao Paulo
    Document8 pagini
    Sao Paulo
    Florin Condurat
    Încă nu există evaluări
  • Cipru
    Cipru
    Document2 pagini
    Cipru
    Florin Condurat
    Încă nu există evaluări
  • Cipru
    Cipru
    Document2 pagini
    Cipru
    Florin Condurat
    Încă nu există evaluări
  • Homer
    Homer
    Document2 pagini
    Homer
    Florin Condurat
    Încă nu există evaluări
  • Homer
    Homer
    Document2 pagini
    Homer
    Florin Condurat
    Încă nu există evaluări