Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Class Complejo

Estas en el tema de Class Complejo en el foro de C/C++ en Foros del Web. Hola. Quiero definir una Class Complejo que defina un número complejo ENTERO como par ordenado de números ENTEROS. Estos son los llamados Enteros de Gauss. ...
  #1 (permalink)  
Antiguo 07/10/2007, 10:38
 
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 90
Antigüedad: 19 años, 6 meses
Puntos: 2
Class Complejo

Hola.

Quiero definir una Class Complejo que defina un número complejo ENTERO como par ordenado de números ENTEROS. Estos son los llamados Enteros de Gauss.
Necesito que la clase defina adecuadamente todas las operaciones entre Enteros de Gauss. En tal caso tengo que sobrecargar todas las operaciones aritméticas.

Mi pregunta es la siguiente. ¿Existe alguna clase en alguna libreria estándar que ya se encargue de definir operaciones de tipo aritmético o algebraico? ¿Existe algún método estándar recomendado? ¿Cuál es la manera correcta o mas recomendable o mas adecuada de sobrecargar los operadores aritméticos?


¿Alguna opinión o sugerencia? Tengan en cuenta que estoy pensando en generalizar un poco más la clase en el futuro, a tipos aritméticos mas abstractos.
¿Alguna sugerencia de cómo debiera trabajar para tener la mejor metodologia de programacion en este asunto?
  #2 (permalink)  
Antiguo 07/10/2007, 11:36
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 5 meses
Puntos: 24
Re: Class Complejo

No hay mucha ciencia en recargar un operador aritmético:
Suponiendo que tu clase es esta:

Código:
class Complejo {

private:
     int real;
     int imaginario;

public:
     
     Complejo(int parteReal ,int parteImaginaria) {
         this->real = parteReal;
         this.imaginario = parteImaginaria;
     }

     int getReal() {
        return this->real;
     }

     int getImaginario {
        return this->imaginario;
     }

     Complejo operator+ (const Complejo& c1, const Complejo& c2) {
          int nReal = c1.getReal() + c2.getReal();
          int nImaginario = c1.getImaginario() + c2.getImaginario();
          return new Complejo(nReal,nImaginario); 
     }
  
};
Ahi tienes un ejemplo de como redefinir el operador +.
Si vas a hacer más extensivo el uso de la clase, te recomendaría que utilices plantillas.
  #3 (permalink)  
Antiguo 08/10/2007, 08:56
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 7 meses
Puntos: 28
Re: Class Complejo

Cita:
Iniciado por argentinator Ver Mensaje
...
Mi pregunta es la siguiente. ¿Existe alguna clase en alguna libreria estándar que ya se encargue de definir operaciones de tipo aritmético o algebraico?
...
No...si es de un tipo (clase) creado por ti debes hacerlo tu tal como te indica TolaWare en su ejemplo.

Cita:
Iniciado por argentinator Ver Mensaje
...
¿Existe algún método estándar recomendado? ¿Cuál es la manera correcta o mas recomendable o mas adecuada de sobrecargar los operadores aritméticos?
...
Como está en el ejemplo, si quieres solo para enteros esa clase te sirve, pero si quieres generalizar un poco te recomiendo que profundices en el tema de las plantillas (templates).

Cita:
Iniciado por argentinator Ver Mensaje
...
¿Alguna opinión o sugerencia? Tengan en cuenta que estoy pensando en generalizar un poco más la clase en el futuro, a tipos aritméticos mas abstractos.
¿Alguna sugerencia de cómo debiera trabajar para tener la mejor metodologia de programacion en este asunto?
Orden, orden, orden...las 3 mejores recomendaciones que puedo hacerte...documentate muy bien acerca de la POO, técnicas, patrones de diseño, entre otras cosas que te podrán ayudar mucho.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:10.