Ho fatto una prova qui, col codice seguente ottengo tutti zero
codice:
// Example program
#include <iostream>
#include <string>

class Prova
{
  public:
    Prova():valore {0.0}{};
    void getValore()
    {
      for(unsigned int i=0;i<5;i++)
      {
        std::cout<<"\n"<<valore[i];
      }
    };
    //altro...
  private:
    double valore[5];
    //altro...
};

int main()
{
  Prova prova;
  prova.getValore();

}
E anche con questo
codice:
// Example program
#include <iostream>
#include <string>

class Prova
{
  public:
    Prova(){};
    void getValore()
    {
      for(unsigned int i=0;i<5;i++)
      {
        std::cout<<"\n"<<valore[i];
      }
    };
    //altro...
  private:
    double valore[5]={0.0};
    //altro...
};

int main()
{
  Prova prova;
  prova.getValore();

}
Con questo codice, e anche il successivo, ottengo 33 solo al primo elemento, gli altri sono zero. In basso, il compilatore è settato a C++14.

codice:
// Example program
#include <iostream>
#include <string>

class Prova
{
  public:
    Prova():valore {33}{};
    void getValore()
    {
      for(unsigned int i=0;i<5;i++)
      {
        std::cout<<"\n"<<valore[i];
      }
    };
    //altro...
  private:
    double valore[5];
    //altro...
};

int main()
{
  Prova prova;
  prova.getValore();

}
codice:
// Example program
#include <iostream>
#include <string>

class Prova
{
  public:
    Prova(){};
    void getValore()
    {
      for(unsigned int i=0;i<5;i++)
      {
        std::cout<<"\n"<<valore[i];
      }
    };
    //altro...
  private:
    double valore[5]={33};
    //altro...
};

int main()
{
  Prova prova;
  prova.getValore();

}
Se faccio
codice:
// Example program
#include <iostream>
#include <string>

class Prova
{
  public:
    Prova():valore {33,2,5,6,7}{};
    void getValore()
    {
      for(unsigned int i=0;i<5;i++)
      {
        std::cout<<"\n"<<valore[i];
      }
    };
    //altro...
  private:
    double valore[5];
    //altro...
};

int main()
{
  Prova prova;
  prova.getValore();

}
oppure

codice:
// Example program
#include <iostream>
#include <string>

class Prova
{
  public:
    Prova(){};
    void getValore()
    {
      for(unsigned int i=0;i<5;i++)
      {
        std::cout<<"\n"<<valore[i];
      }
    };
    //altro...
  private:
    double valore[5]={33,2,5,6,7};
    //altro...
};

int main()
{
  Prova prova;
  prova.getValore();

}
Il tutto funziona correttamente.


Dove stà l'inghippo?
Uno dei dati membro è un array in quanto conosco il suo numero di elementi tramite un tipo enumerato (al posto di 5 c'è AltraClasse::NumeroElementiArray), che potrebbe cambiare valore: col ciclo for il tutto era gestito in automatico, se invece devo passargli la lista di tutti gli zero, la cosa non è più automatica...

A casa uso Code::Blocks e compilatore gcc se non ricordo male, può dipendere da questo?

Grazie ancora