Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/10/2010, 14:39
fightmx
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 10 meses
Puntos: 22
Respuesta: Ayuda con sobrecarga de operadores

Si estás definiendo un número racional toma en cuenta que el denominador debe ser diferente de cero, podrías utilizar un solo constructor:
Código C++:
Ver original
  1. fracciones(int a = 1, int b = 0):de(a), no(b){
  2. }

Con esto tendrías por default al número 0/1 (cero) y no el 0/0 que sería un error matemáticamente hablando.

Me parece que si la variable "de" es el denominador y "no" el númerador deberias invertir el orden de las variables en el código para que sea más claro.

Por otro lado para definir el producto es suficiente con que retornes por valor el resultado de la operación, ya que por referencia al final no obtendrás el comportamiento habitual al hacer las operaciones:
Código C++:
Ver original
  1. const fracciones operator*(const fracciones& c){
  2.         return fracciones(de * c.de, no * c.no);
  3. }