// lab09.cpp (c) 2000 adolfo@di-mare.com /** \file lab09.cpp \brief Este programa implementa y usa una clase para clasificar edades: - niño - joven - adulto - roquito - quechito \author Adolfo Di Mare \date 2000 */ #include // #include #include /// Almacena la cantidad de años de una persona. class Edad { private: int m_ano; ///< Cantidad de años public: // constructores Edad() : m_ano(0) {} ///< Constructor por defecto Edad(const Edad& o) : m_ano(o.m_ano) {} ///< Constructor de copia Edad(int a) : m_ano(a) {} ///< Constructor a partir del año \c "a" /// Copia. Edad& operator= (const Edad& o) { m_ano = o.m_ano; return *this; } int get() const { return m_ano; } ///< Obtiene el año almacenado void set(int ano) { m_ano = ano; } ///< Cambia a \c "ano" el valor almacenado const char* grupo(); }; // Edad #define DIM(v) ( sizeof(v) / sizeof(*v) ) /// Retorna el grupo al que corresponde la edad que representa el año. const char* Edad::grupo() { const char* nombre[] = { "niño", "joven", "adulto", "roquito","quechito" }; const int edad[] = { 12, 21, 45, 65, 90 }; for (int i=0; i ¿ l == r inline bool operator == (const Edad& l, const Edad& r) { return l.get() == r.get(); } /// ¿ l != r inline bool operator != (const Edad& l, const Edad& r) { return !( l==r); } /// Lee del flujo de entrada \c "CIN" el nuevo valor para \c "e". istream& operator>> (istream& CIN, Edad& e) { int n; CIN >> n; e.set(n); return CIN; } // operator>> () /// Programa principal. int main() { Edad A = 13; while (A != 0) { cout << "Dígame su edad "; cin >> A; cout << "Hola " << A.grupo() << endl; } return 0; } // main() // EOF: lab09.cpp