Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/04/2011, 00:53
Avatar de Heimish2000
Heimish2000
 
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Problema de novato con clases

Es que el enum no es una clase, el enum es un tipo enumerado. enum es una palabra reservada para declarar tipos enumerados, no es el nombre de una clase o de un tipo (como tu lo estas utilizando).

En este caso el tipo enumerado que has definido es estado_civil. Lo deberías definir fuera de la clase y luego declarar una variable de ese tipo.

Aquí, el atributo ec de la clase Cliente será de tipo estado_civil, y podrá tener los valores soltero, casado, viudo o divorciado

Código C++:
Ver original
  1. /* EN CLIENTE.H */
  2.  
  3. enum estado_civil{soltero, casado, viudo, divorciado};
  4.  
  5. class Cliente{
  6. private:
  7.     string DNI; /**<DNI sin letra*/
  8.     string nombre; /**<Nombre separado por un espacio en blanco si es necesario*/
  9.     unsigned int edad;
  10.     estado_civil ec;
  11. public:
  12.     string getDNI() const;
  13.     unsigned int getEdad() const;
  14.     string getNombre() const;
  15.     estado_civil getEstado_civil() const;
  16.     void setDNI(string DNI);
  17.     void setEdad(unsigned int edad);
  18.     void setNombre(string nombre);
  19.     void setEstado_civil(estado_civil estado);
  20. };

Luego es simplemente usar estado_civil como tipo de datos, al igual que se usa int, char o String (como ves, en el .h he cambiado las definiciones para que así sea), quedando así el .cpp

Código C++:
Ver original
  1. /*EN CLIENTE.CPP*/
  2.  
  3. string Cliente::getDNI() const
  4. {
  5.     return DNI;
  6. }
  7.  
  8. unsigned int Cliente::getEdad() const
  9. {
  10.     return edad;
  11. }
  12.  
  13. string Cliente::getNombre() const
  14. {
  15.     return nombre;
  16. }
  17.  
  18. estado_civil Cliente::getEstado_civil() const
  19. {
  20.     return ec;
  21. }
  22.  
  23. void Cliente::setDNI(string DNI)
  24. {
  25.     this->DNI = DNI;
  26. }
  27.  
  28. void Cliente::setEdad(unsigned int edad)
  29. {
  30.     this->edad = edad;
  31. }
  32.  
  33. void Cliente::setNombre(string nombre)
  34. {
  35.     this->nombre = nombre;
  36. }
  37.  
  38. void Cliente::setEstado_civil(estado_civil estado)
  39. {
  40.     this->ec = estado;
  41. }