Classe para manipulação de números complexos

Publicado por Humberto Henrique Campos Pinheiro 07/02/2006

[ Hits: 12.384 ]

Download Complex.zip




Fiz essa classe bem simples para estudar o uso de sobrecarga de operadores, já que estou na transição c -> c++.

  



Esconder código-fonte

/******* CABEÇALHO *******************/
//interface da classe complex - números complexos


#ifndef COMPLEX_H //evita múltiplas inclusões
#define COMPLEX_H

class Complex{
      private:
              double real;
              double img;
      public:
             //construtor 
             Complex();
             
             //imprime
             void imprime();
             
             //configura os valores do número
             void set(int,int);
             
             //sobrecarga de operador +
             Complex operator+(Complex);
             
             //sobrecarga do operador -
             Complex operator-(Complex);
};

#endif

/*********Implementação**************/

//Implementação da classe Complex

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

using namespace std;

//construtor
Complex::Complex()
{
  real=0;
  img=0;
}


//imprime o número complexo
void Complex::imprime() //sugestãop: sobrecarregar operador << e >>
{
  cout << real << " + " << img << "i" << endl;
  //cout << "(" << real << "," << img << ")" <<endl;
}

//configura o número complexo
void Complex::set(int rl, int im)
{
  real=rl;
  img=im;
}

//sobrecarga do operador +
Complex Complex::operator+(Complex b)
{
  Complex c;
  c.real=real + b.real;
  c.img=img + b.img;
  return c;  
}

//sobrecarga do operador -
Complex Complex::operator-(Complex b)
{
  Complex c;
  c.real=real - b.real;
  c.img=img - b.img;
  return c;

Scripts recomendados

Tabela ASCII em C++

Jogo da Velha Bem simples

Estrutura typedef struct em C

Utilização de Ponteiros em C (2)

Cálculo de Bhaskara para raízes reais e complexas


  

Comentários
[1] Comentário enviado por jorgyano em 29/08/2007 - 16:44h

cara tu me salvou!!!!!!!!
valeww!!!
post muito legal!!!!111

[2] Comentário enviado por manocau em 13/03/2010 - 15:42h

Para ficar mais claro, para utilizar poderia fazer algo como:

Complex a, b, c; //criando 3 variáveis do tipo complexo
a.set(5, 4); //iniciando a variavel chamada "real" de "a" com 5, e a variavel "img" de "a" com 4
a.imprime(); //deveria imprimir na tela "5+4i"

b.set(3, 1); //iniciando a variavel chamada "real" de "b" com 3, e a variavel "img" de "b" com 1
b.imprime(); //deveria imprimir na tela "3+1i"

c = a + b; //soma 2 objetos e atribui a outro objeto. Só é possivel devido a sobrecarga do operador "+"
c.imprime(); //deveria imprimir na tela "8+5i"


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts