public:
/// Constructor.
- Ascii(char c = '0'): caracter(c) {
-#ifdef DEBUG
- std::cerr << "En constructor de Ascii." << std::endl;
-#endif
- }
+ Ascii(char c = '0');
/// Constructor de copia.
- Ascii(const Ascii& ascii): caracter(ascii.caracter) {
-#ifdef DEBUG
- std::cerr << "En constructor de copia de Ascii." << std::endl;
-#endif
- }
+ Ascii(const Ascii& ascii);
/// Destructor.
- virtual ~Ascii(void) {
-#ifdef DEBUG
- std::cerr << "En destructor de Ascii." << std::endl;
-#endif
- }
+ virtual ~Ascii(void);
+
+ /// Indica si el caracter es de fin de línea.
+ bool is_endl(void) const;
/// Asignación de una instancia a otra.
- Ascii& operator=(const Ascii& ascii) {
-#ifdef DEBUG
- std::cerr << "En operator= de Ascii." << std::endl;
-#endif
- caracter = ascii.caracter;
- return *this;
- }
+ Ascii& operator=(const Ascii& ascii);
/// Comparación por menor de dos instancias.
- bool operator<(const Ascii& ascii) {
-#ifdef DEBUG
- std::cerr << "En operator< de Ascii." << std::endl;
-#endif
- return caracter < ascii.caracter;
- }
+ bool operator<(const Ascii& ascii) const;
/// Comparación por igual de dos instancias.
- bool operator==(const Ascii& ascii) {
-#ifdef DEBUG
- std::cerr << "En operator== de Ascii." << std::endl;
-#endif
- return caracter == ascii.caracter;
- }
+ bool operator==(const Ascii& ascii) const;
+
+ /// Cast a char.
+ operator char(void) const;
+
+ /// Cast a short.
+ operator short(void) const;
/// Volcado a un stream de salida.
friend std::ostream& operator<<(std::ostream& out, const Ascii& ascii);
/// Captura desde un stream de entrada.
- friend std::istream& operator>>(std::istream& in, const Ascii& ascii);
+ friend std::istream& operator>>(std::istream& in, Ascii& ascii);
};