codice:
class Automobile{

private:
list <Componente> componenti;
string modello;

public:
Automobile();  //1
Automobile(const Automobile& a);  //2
bool operator=(const Automobile& a);  //3
bool operator == (const Automobile & a);  //4

double costo();
{
  double sum=0,
   for(list<Componente>::iterator i=componenti.begin() ; i!=componenti.end() ; i++)
    sum+= i->Costo();

return sum;
}

bool aggiungiComponente(Componente c)
{
    if(!c.compatibileCon(modello))
      return false;
 
 for(list<Componente>::iterator i=componenti.begin() ; i!=componenti.end() ; i++)
   if( !i->compatibileCon (c) )
       return false;
 
        componenti.push_back(c);
         return true;

}


  };
Ciao ciao ,qualcuno gentilmente mi potrebbe dire come si fa l'implementazione del costruttore ,costruttore di copia,dell'op di assegnamento e di uguaglianza(linee 1,2,3,4) di questo eserc.???
Mi mette in difficolta la lista di componenti...