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