codice:
class HomeCinema
{
private:
    list<Componente> componenti;
    public:
    HomeCinema(); // costruttore default
    HomeCinema(const HomeCinema & hc);// costruttore
    friend ostream& operator<<(const ostream& hc, const HomeCinema& a); //operatore <<
    bool operator!=(const HomeCinema& a); // operator !=
    double costo()
    {
        double sum=0;
        for(list<Componente>::iterator i= componente.begin(); i != componenti.end();i++)
        {
            sum+=(*i).costo();
        } // chiusura for
        return sum;
    } // chiusura costo
    bool aggiungiComponente(Componente c)
    {
        for(list<Componente>::iterator i= componente.begin(); i != componenti.end();i++)
        {
            if(!(*i).compatibileCon(c))
            { 
                return false;
            } // chiusura if
        } // chiusura for
        componenti.push_back(c);
        return true;
    } // chiusura aggiungiComponenti
}; // chiusura classe
a) completare l implementazione dei metodi specificati
b) progettare le/la classe componente in modo da consentire la configurazione di un impianto con i piu comuni componenti(TV, amplificatore,diffusori frontali,laterali subwoofer ecc.)