Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Lord.Chester en 17 Enero 2016, 22:44 pm



Título: ¿Cómo usar IF con un métodos de una clase?
Publicado por: Lord.Chester en 17 Enero 2016, 22:44 pm
Buenas!

Me dirijo ustedes para realizar una duda muy concreta.

Código:
 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 :
Código:
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:
Código:
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





Título: Re: ¿Cómo usar IF con un métodos de una clase?
Publicado por: MAFUS en 17 Enero 2016, 23:00 pm
Pon el código donde se cambia el valor de si el satélite está identificado.


Título: Re: ¿Cómo usar IF con un métodos de una clase?
Publicado por: Lord.Chester en 17 Enero 2016, 23:14 pm
El codigo de la clase satélite:
Código:
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:
Código:
 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:

Código:
if(Sat[nsat].EstaIdentificado()==true)

ó

Código:
if(Sat[nsat].EstaIdentificado())

Un saludo


Título: Re: ¿Cómo usar IF con un métodos de una clase?
Publicado por: MAFUS en 18 Enero 2016, 10:07 am
Por ahora todo está bien. Muestra Identificar.