dato che il problema si verifica solo con un materiale specifico, riporto qui la "struttura" di un materiale che funziona e uno con cui non funziona....
codice:
class Materiale {
    public:
        virtual double sigma(double& epsilon)=0;
        virtual double get_E()=0;
};
//con questo funziona
class Acciaio : public Materiale {
    double f_yk;
    double E;
    static const double gamma_m0;

    double f_yd;
    double epsilon_yd;

    public:
    Acciaio(double& fyk);

    double sigma(double& epsilon);
    double get_E();
};
//con questo NON funziona
namespace CA {
    class Acciaio : public Materiale {
        static const double f_yk;
        static const double f_tk;
        double E;

        static const double gamma_s;

        static const double f_yd;
        double epsilon_yd;

        public:
        Acciaio();
        double sigma(double& epsilon);
        double get_E();
    };
}
la get_E() di entrambi è uguale e si limita a restituire E.