Buenas!
Me dirijo ustedes para realizar una duda muy concreta.
cout<<"Introduce el numero del satelite [0,4]:";
cin>>nsat;
cout<<"\n";
if(Sat[nsat].EstaIdentificado())
{
cout<<"ADVERTENCIA EL SATELITE YA ESTA IDENTIFICADO";
}
else
{
cout<<"Satelite Numero "<<nsat<<endl;
cout<<"Introduce Login: "; cin>>pLogin; cout<<endl;
cout<<"Introduce Password Admin: "; cin>>pMaster; cout<<endl;
cout<<"Introduce Nombre Satelite: "; cin>>pNombre; cout<<endl;
cout<<"Introduce Fabricante: "; cin>>pFabrica; cout<<endl;
cout<<"Introduce Numero de Serie: "; cin>>pNSerie; cout<<endl;
Sat[nsat].Identificar(pLogin, pMaster, pNombre, pFabrica, pNSerie);
}
Mi duda reside aqui : if(Sat[nsat].EstaIdentificado())
El método esta identificado es un bool que tiene que devolver true en un momento concreto. Pero para preguntar si ha devuelto true... ¿Estaría bien escrito o deberia poner algo como: if(Sat[nsat].EstaIdentificado()==true)
?
Porque pare que no esta bien esa linea porque el programa me deja identificar infinitas veces un satélite (Este codigo debe permitir identificar un "Satelite"(Sat[], es decir darle nombre...ect pero solo 1 VEZ) cuando eso no debería ser así.
Un saludo
Pon el código donde se cambia el valor de si el satélite está identificado.
El codigo de la clase satélite:
class Satelite
{
Identificacion Iden;
Cadena Nombre;
Cadena Fabricante;
int NSerie;
int Estado;
float Tomas[NMESES][NDIAS];
public:
Satelite();
bool EstaIdentificado(){return Estado>=0;};
bool EstaActivado(){return Estado==1;};
bool Identificar(Cadena pLogin, Cadena pMaster, Cadena pNombre,
Cadena pFabrica, int pNSerie);
bool Activar(Cadena pLogin, Cadena pPasswd);
bool Desactivar(Cadena pLogin, Cadena pPasswd);
void MostrarEstado();
float GetToma(int pMes, int pDia);
void SetToma(int pMes, int pDia, float pTemp);
void Rellenar(int Porcen=90);
Satelite operator+(Satelite pSat);
};
El codigo en concreto:
bool EstaIdentificado(){return Estado>=0;};
bool EstaActivado(){return Estado==1;};
Esta parte del código la realizo mi tutor y ya estaba implementada y he de suponer que estaba bien, lo estados a los que hace referencia son -1=(No identificado ni activado), 0=(Identificado), 1=(Activado).
De todos modos sabes si es correcto:
if(Sat[nsat].EstaIdentificado()==true)
ó
if(Sat[nsat].EstaIdentificado())
Un saludo
Por ahora todo está bien. Muestra Identificar.