]> git.llucax.com Git - z.facultad/75.42/string.git/blob - universalstring.h
21116a91b0b2caa91fff94fd3534fa212c1d87d2
[z.facultad/75.42/string.git] / universalstring.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 UNIVERSALSTRING_H
18 #define UNIVERSALSTRING_H
19
20 #include <ostream>
21 #include <istream>
22
23 #ifdef DEBUG
24 #   include <iostream>
25 #endif
26
27 /// String Universal.
28 template<class T>
29 class UniversalString {
30
31         /// Cadena de caracteres.
32         T* string;
33
34     public:
35
36         /// Constructor.
37         UniversalString(char c = '0');
38
39         /// Constructor de copia.
40         UniversalString(const UniversalString& str);
41
42         /// Destructor.
43         virtual ~UniversalString(void);
44
45         /// Asignación de una instancia a otra.
46         UniversalString& operator=(const UniversalString& str);
47
48         /// Comparación por menor de dos instancias.
49         bool operator<(const UniversalString& str);
50
51         /// Comparación por igual de dos instancias.
52         bool operator==(const UniversalString& str);
53
54         /// Cast a short.
55         short int UniversalString::operator short int(void);
56
57         /// Volcado a un stream de salida.
58         friend std::ostream& operator<<(std::ostream& out, const UniversalString& str);
59
60         /// Captura desde un stream de entrada.
61         friend std::istream& operator>>(std::istream& in, const UniversalString& str);
62
63 };
64
65 #endif // UNIVERSALSTRING_H