Мой вопрос касается переменных, определенных в классах. Я покажу вам свою проблему.Переменные теней
Я определил этот класс:
class Measure {
int N;
double measure_set[];
char nomefile[];
double T;
public:
void get();
void printall();
double mean();
double thermal_comp();
};
Я хотел бы способ получить сделать следующее:
- чтения номера из .dat файла и сохранить в measure_set массив;
- считывает ввод пользователя и сохраняет его в переменной T;
Вот что я сделал:
void Measure::get()
{
cout << "Insert filename:" << endl;
cin >> nomefile;
cout << endl;
cout << nomefile << endl;
cout << endl;
int M=0;
int nmax=50;
ifstream f;
f.open(nomefile);
while(M<nmax)
{
f >> measure_set[M];
if(f.eof())
break;
M++;
}
f.close();
N=M+1;
cout << "Insert temperature:" << endl;
cin >> T;
cout << endl;
}
Что происходит, что я заметил, что T запоминается в measure_set[0]
. Почему это происходит и как я могу написать рабочий код? Я не специалист в C++, используя это только для целей вычислений, хотя я мог бы решить мою проблему другими способами, я хотел бы узнать, как сделать эту работу на C++. Большое спасибо!
Это не действительный C++ код. Используйте 'std :: vector', если вам нужен массив динамического размера. – rightfold
Спасибо вам обоим, самая большая ошибка заключалась в определении этого вектора [] в заголовке класса, я не знал, что это невозможно. Также были полезны другие предложения для написания лучшего кода. Еще раз спасибо! ^^ –