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/* EN CLIENTE.H */
enum estado_civil{soltero, casado, viudo, divorciado};
class Cliente{
private:
string DNI; /**<DNI sin letra*/
string nombre; /**<Nombre separado por un espacio en blanco si es necesario*/
unsigned int edad;
estado_civil ec;
public:
string getDNI() const;
unsigned int getEdad() const;
string getNombre() const;
estado_civil getEstado_civil() const;
void setDNI(string DNI);
void setEdad(unsigned int edad);
void setNombre(string nombre);
void setEstado_civil(estado_civil estado);
};
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/*EN CLIENTE.CPP*/
string Cliente::getDNI() const
{
return DNI;
}
unsigned int Cliente::getEdad() const
{
return edad;
}
string Cliente::getNombre() const
{
return nombre;
}
estado_civil Cliente::getEstado_civil() const
{
return ec;
}
void Cliente::setDNI(string DNI)
{
this->DNI = DNI;
}
void Cliente::setEdad(unsigned int edad)
{
this->edad = edad;
}
void Cliente::setNombre(string nombre)
{
this->nombre = nombre;
}
void Cliente::setEstado_civil(estado_civil estado)
{
this->ec = estado;
}