codice:
class Plate {
    Materiale* p_materiale;
    ....
    CLS cls = CLS(Rck);
    p_materiale = &cls;
    ...
    public friend bool verificaPLATE(Plate& p);
};
bool verificaPLATE(Plate& p) {
...
Rettangolare X = Rettangolare(X,H,p.p_materiale); //non riconosce il costruttore..perchè?
verifica(X); //vedi più avanti
...
}

class Sezione {
    protected Materiale * p_materiale; 
    ...
};

class Rettangolare : public Sezione {
    public Rettangolare(...,Materiale * p) {
        p_materiale = p;
    }
    public friend bool verifica(Rettangolare& s);
};

bool verifica(Rettangolare& s) {
    //QUI errore se richiamo p_materiale.funzione();
}

class Materiale {...};
class CLS : public Materiale {..};
perchè non passa il puntatore?