]> git.llucax.com Git - z.facultad/75.42/string.git/blob - ascii.h
Implementada en parte la clase Ascii.
[z.facultad/75.42/string.git] / ascii.h
1 /* vim: set et sts=4 sw=4 fdm=marker fmr={,} fdn=1 fo+=t tw=80:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Ejercicio Número 4:
6  * Ordena texto ASCII o Unicode.
7  *
8  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
9  * Puede copiar, modificar y distribuir este programa bajo los términos de
10  * la licencia GPL (http://www.gnu.org/).
11  *
12  * Creado: Mon Sep 22 21:00:15 ART 2003
13  *
14  * $Id$
15  */
16
17 #ifndef ASCII_H
18 #define ASCII_H
19
20 #include <ostream>
21 #include <istream>
22
23 #ifdef DEBUG
24 #   include <iostream>
25 #endif
26
27 /// Caracter ASCII.
28 class Ascii {
29
30         /// Caracter ASCII almacenado.
31         char caracter;
32
33     public:
34
35         /// Constructor.
36         Ascii(char c = '0'): caracter(c) {
37 #ifdef DEBUG
38             std::cerr << "En constructor de Ascii." << std::endl;
39 #endif
40         }
41
42         /// Constructor de copia.
43         Ascii(const Ascii& ascii): caracter(ascii.caracter) {
44 #ifdef DEBUG
45             std::cerr << "En constructor de copia de Ascii." << std::endl;
46 #endif
47         }
48
49         /// Destructor.
50         virtual ~Ascii(void) {
51 #ifdef DEBUG
52             std::cerr << "En destructor de Ascii." << std::endl;
53 #endif
54         }
55
56         /// Asignación de una instancia a otra.
57         Ascii& operator=(const Ascii& ascii) {
58 #ifdef DEBUG
59             std::cerr << "En operator= de Ascii." << std::endl;
60 #endif
61             caracter = ascii.caracter;
62             return *this;
63         }
64
65         /// Comparación por menor de dos instancias.
66         bool operator<(const Ascii& ascii) {
67 #ifdef DEBUG
68             std::cerr << "En operator< de Ascii." << std::endl;
69 #endif
70             return caracter < ascii.caracter;
71         }
72
73         /// Comparación por igual de dos instancias.
74         bool operator==(const Ascii& ascii) {
75 #ifdef DEBUG
76             std::cerr << "En operator== de Ascii." << std::endl;
77 #endif
78             return caracter == ascii.caracter;
79         }
80
81         /// Volcado a un stream de salida.
82         friend std::ostream& operator<<(std::ostream& out, const Ascii& ascii);
83
84         /// Captura desde un stream de entrada.
85         friend std::istream& operator>>(std::istream& in, const Ascii& ascii);
86
87 };
88
89 #endif // ASCII_H