[c++]Operatori di ridefinizione (==) tra due liste

di il
3 risposte

[c++]Operatori di ridefinizione (==) tra due liste

Se ho una classe Componente
dove le componenti sono il nome ed il costo
e una classe Automobile
dove ha una lista di Componenti (list<Componente> componenti;)
per vedere se due liste sono uguali devo fare cosi: (???)

//nella classe Componente
bool operator!=(const Componente& c)
{
      if(nome==c.nome)
             return false;
      return true;
}
//nella classe Automobile
bool operator==(const Automobile& a)
{
     if(componenti.size() != a.componenti.size())
            return false;
    list<Componente>::iterator it1=componenti.begin();
    for(list<Componente>::const_iterator it2=a.componenti.begin();it2!=a.componenti.end();it2++)
    {
          if((*it1) != (*it2))
               return false;
          it1++;
    }
return true;
}

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte