Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2014, 15:52
DvNe
 
Fecha de Ingreso: octubre-2012
Mensajes: 37
Antigüedad: 11 años, 8 meses
Puntos: 0
Duda de comprensión de clase

Buenas, estoy implementando una clase CLAVE de la cual me dan un enunciado para saber sus características.

Su atributo es una Cadena que aloja la contraseña cifrada.

Se construye a partir de una cadena de caracteres de bajo nivel que contendrá la contraseña «en claro», sin cifrar. La contraseña puede ser incorrecta por ser demasiado corta (menos de 5 caracteres, como se ha dicho), o por haber ocurrido algún error al cifrarse. En esos casos, el constructor elevará la excepción Clave::Incorrecta. Esta clase almacenará como atributo la razón de la incorrección, que será una enumeración llamada Clave::Razon con las constantes CORTA y ERROR_CRYPT.
Su método observador razon devolverá dicho atributo.


El método observador clave devolverá la contraseña cifrada.

El método verifica recibe como parámetro una cadena de bajo nivel con una supuesta contraseña en claro y devuelve el valor booleano verdadero si se corresponde con la contraseña almacenada, o falso si no.

El problema es que no entiendo el párrafo que esta en negrita cuando llego a la parte de Clave::Razon

La implementación que he hecho de la clase es la siguiente:

Código:
#ifndef _CLAVE_H_
#define _CLAVE_H_

#include "cadena.h"

class Clave {
 public:
  Clave (const char*);
  Cadena clave() const { return pass_cifrada; }
  bool verifica(const char*);
  
  class Razon {
  public:
    enum razon = {CORTA, ERROR_CRYPT}
  };
  class Incorrecta {
  public:
    Incorrecta(Razon r) { razon_ = r; }
    Razon razon() const { return razon_; }
  private:
    Razon razon_;
    };
 private:
  Cadena pass_cifrada;
  
  bool claveValida(const char*);
  static const char* SALTO;
};

#endif
Pero no está bien, alguien me puede explicar qué hago mal.

Saludos
José

Última edición por DvNe; 26/03/2014 a las 17:18