Classe para manipulação de números complexos
Publicado por Humberto Henrique Campos Pinheiro 07/02/2006
[ Hits: 12.705 ]
Fiz essa classe bem simples para estudar o uso de sobrecarga de operadores, já que estou na transição c -> c++.
/******* 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;
Uma ajuda para quem gosta de Geometria Analítica
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Consertando o áudio com som ruim no Pipewire
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Como programar um sistema de controle para distribuições linux em c? (5)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... (2)









