Página principal | Lista de namespace | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros

Referencia del Archivo str_prtc.cpp

Implementación de la clase str_prtc. Más...

#include "str_prtc.h"
#include <memory.h>
#include <string.h>
#include <assert.h>

Funciones

bool Check_Ok (const str_prtc &STR)
 Verifica que se cumpla la invariante de la clase, o sea, que el objeto esté bien construido.


Descripción detallada

Implementación de la clase str_prtc.

Autor:
Adolfo Di Mare <[email protected]>
Fecha:
2005

Documentación de las funciones

bool Check_Ok const str_prtc STR  ) 
 

Verifica que se cumpla la invariante de la clase, o sea, que el objeto esté bien construido.

  • La razón por la que esta función no es un método es continuar la costumbre de muchos programadores quienes no definen la invariante para sus clases, pues en muchos casos sobra hacerlo.
  • Esta función en general es difícil de implementar, y en algunos casos es imposible pues, cuando el objeto no está bien construido, puede ocurrir que la función no retorne.
  • En general, la implementáción de esta función no es completa pues hay casos en que es imposible verificar la invariante de una clase.

Postcondición:
Retorna "true" si el la hilera es un objeto bien construido
Ver también:
http://www.di-mare.com/adolfo/binder/c04.htm#sc11
00076                                    {
00077     unsigned i;
00078     if (STR._after[0] != 0) { // verifica EOS al final de la hilera
00079 //          i = i;
00080         return false;
00081     }
00082 
00083     for (i = 0; i < str_prtc::SIZE_out; ++i) {
00084         if (STR._before[i] != ((char)0xFF ^ STR._after[i])) {
00085             return false; // verifica que los [amortiguadores] alrededor
00086         }                 // de la hilera no están [manchados]
00087     }
00088 
00089     i = str_prtc::SIZE_in;
00090     do {
00091         i--;
00092         if (0 == STR._s[i]) { // encontró EOS y todo está bien
00093             break;
00094         } else if (STR._s[i] != str_prtc::Fix_char) {
00095             return false; // se queja porque no hay [chingolitos] después de la hilera
00096         }
00097     } while (i != 0);
00098     if ( i == 0 ) {
00099         return true;
00100     }
00101     // assert( i > 0 );
00102     do {
00103         i--;
00104         if (0 == STR._s[i]) {
00105             return false; // encontró más de un EOS
00106         }
00107     } while (i != 0);
00108 
00109     return true;
00110 }


Generado el Sun Nov 13 21:54:52 2005 para A21551 y 791572 Tarea Programada #8 por  doxygen 1.4.4
Hosted by www.Geocities.ws

1