]> git.llucax.com Git - z.facultad/75.42/string.git/commitdiff
Ya compilan Ascii y Unicode.
authorLeandro Lucarella <llucax@gmail.com>
Sat, 27 Sep 2003 18:43:05 +0000 (18:43 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Sat, 27 Sep 2003 18:43:05 +0000 (18:43 +0000)
ascii.cpp
ascii.h
unicode.cpp
unicode.h

index f4b72d8814b1cd91602bbef2ccddf0e0fcb1387d..9a0982ceed86c131af8f85e228c34660cfc188b7 100644 (file)
--- a/ascii.cpp
+++ b/ascii.cpp
@@ -20,7 +20,7 @@
 #   include <iostream>
 #endif
 
-Ascii::Ascii(char c = '0'): caracter(c) {
+Ascii::Ascii(char c): caracter(c) {
 #ifdef DEBUG
     std::cerr << "En constructor de Ascii." << std::endl;
 #endif
@@ -60,7 +60,14 @@ bool Ascii::operator==(const Ascii& ascii) {
     return caracter == ascii.caracter;
 }
 
-short Ascii::operator short(void) {
+Ascii::operator char(void) const {
+#ifdef DEBUG
+    std::cerr << "En cast de Ascii a char." << std::endl;
+#endif
+    return static_cast<char>(caracter);
+}
+
+Ascii::operator short(void) const {
 #ifdef DEBUG
     std::cerr << "En cast de Ascii a short." << std::endl;
 #endif
diff --git a/ascii.h b/ascii.h
index cbf9f94b143c81f042f03cec76f2121d2777103d..86c0322dca12f24999e6a576a2e980b5346e156f 100644 (file)
--- a/ascii.h
+++ b/ascii.h
@@ -50,8 +50,11 @@ class Ascii {
         /// Comparación por igual de dos instancias.
         bool operator==(const Ascii& ascii);
 
+        /// Cast a char.
+        operator char(void) const;
+
         /// Cast a short.
-        short int Ascii::operator short int(void);
+        operator short(void) const;
 
         /// Volcado a un stream de salida.
         friend std::ostream& operator<<(std::ostream& out, const Ascii& ascii);
index f1a0ad72f91e917b823480d6c6a734316e17476b..c0bfa8fafa372d379d590479e3894cf8ca33a307 100644 (file)
@@ -20,7 +20,7 @@
 #   include <iostream>
 #endif
 
-Unicode::Unicode(short c = 0): caracter(c) {
+Unicode::Unicode(short c): caracter(c) {
 #ifdef DEBUG
     std::cerr << "En constructor de Unicode." << std::endl;
 #endif
@@ -60,14 +60,20 @@ bool Unicode::operator==(const Unicode& unicode) {
     return caracter == unicode.caracter;
 }
 
-char Unicode::operator char(void) {
+Unicode::operator short(void) const {
+#ifdef DEBUG
+    std::cerr << "En cast de Unicode a char." << std::endl;
+#endif
+    return static_cast<short>(caracter);
+}
+
+Unicode::operator char(void) const {
 #ifdef DEBUG
     std::cerr << "En cast de Unicode a char." << std::endl;
 #endif
     return static_cast<char>(caracter);
 }
 
-/// Volcado a un stream de salida.
 std::ostream& operator<<(std::ostream& out, const Unicode& unicode) {
 #ifdef DEBUG
     std::cerr << "En operator<< de Unicode." << std::endl;
@@ -75,7 +81,6 @@ std::ostream& operator<<(std::ostream& out, const Unicode& unicode) {
     return out << unicode.caracter;
 }
 
-/// Captura desde un stream de entrada.
 std::istream& operator>>(std::istream& in, const Unicode& unicode) {
 #ifdef DEBUG
     std::cerr << "En operator>> de Unicode." << std::endl;
index 1eeb1d822dd2a7caa22ad7b430527232df246de9..f232b675d0b42a3f9add7ee91f824eb7585465ef 100644 (file)
--- a/unicode.h
+++ b/unicode.h
@@ -51,13 +51,18 @@ class Unicode {
         bool operator==(const Unicode& unicode);
 
         /// Cast a char.
-        char Unicode::operator char(void);
+        operator char(void) const;
+
+        /// Cast a char.
+        operator short(void) const;
 
         /// Volcado a un stream de salida.
-        friend std::ostream& operator<<(std::ostream& out, const Unicode& unicode);
+        friend std::ostream& operator<<(std::ostream& out,
+                const Unicode& unicode);
 
         /// Captura desde un stream de entrada.
-        friend std::istream& operator>>(std::istream& in, const Unicode& unicode);
+        friend std::istream& operator>>(std::istream& in,
+                const Unicode& unicode);
 
 };