Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/03/2014, 13:36
DvNe
 
Fecha de Ingreso: octubre-2012
Mensajes: 37
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Sobrecarga de operandos

Esta es la clase que definí (su cabecera) y como se puede ver puedo sobrecargarlos interna y externamente

Código C++:
Ver original
  1. #ifndef _FECHA_H_
  2. #define _FECHA_H_
  3. #include <iostream>
  4.  
  5. class Fecha {
  6.  public:
  7.   Fecha (const int dia = 0, const int mes = 0, const int anno = 0);
  8.   Fecha (const Fecha& );
  9.   Fecha (const char* );
  10.   class Invalida {
  11.   public:
  12.     Invalida(const char* texto) { razon_ = texto; }
  13.     const char* por_que() { return razon_; }
  14.   private:
  15.     const char* razon_;
  16.   };
  17.   int anno() const { return anno_; }
  18.   int mes() const { return mes_; }
  19.   int dia() const { return dia_; }
  20.  
  21.   //OPERADORES ARITMETICOS
  22.   Fecha operator++ (const int); // Operador postfijo
  23.   Fecha operator-- (const int); // Operador postfijo
  24.   Fecha& operator++ ();
  25.   Fecha& operator-- ();
  26.   Fecha& operator+= (const int);
  27.   Fecha& operator-= (const int);
  28.   Fecha operator= (const Fecha&);
  29.   /*   //OPERADORES DE COMPARACION
  30.   bool operator == (const Fecha&);
  31.   bool operator != (const Fecha&);
  32.   bool operator < (const Fecha&);
  33.   bool operator <= (const Fecha&);
  34.   bool operator > (const Fecha&);
  35.   bool operator >= (const Fecha&);*/
  36.  
  37.   char* cadena() const;
  38.  private:
  39.   int dia_, mes_, anno_;
  40.   static const int AnnoMinimo = 1600;
  41.   static const int AnnoMaximo = 2200;
  42.   bool Bisiesto() const;
  43.   bool FechaValida() const throw(Fecha::Invalida);
  44. };
  45.  
  46. std::ostream& operator << (std::ostream &o, const Fecha &a);
  47.  
  48. Fecha operator + (const int, const Fecha&);
  49. Fecha operator + (const Fecha&, const int);
  50. Fecha operator - (const int, const Fecha&);
  51. Fecha operator - (const Fecha&, const int);
  52.   //OPERADORES DE COMPARACION
  53. bool operator == (const Fecha&, const Fecha&);
  54. bool operator != (const Fecha&, const Fecha&);
  55. bool operator < (const  Fecha&, const Fecha&);
  56. bool operator <= (const  Fecha&, const Fecha&);
  57. bool operator > (const  Fecha&, const Fecha&);
  58. bool operator >= (const  Fecha&, const Fecha&);
  59. #endif