Во-первых, извините, если это глупый вопрос, но я недавно научился обращаться с классами. Моя проблема в том, что я создал конструктор, который дает каждому элементу данных случайное число со следующим синтаксисом:
#include <random>
...
//Constructor
cSystem::cSystem(void)
{
//Range of random numbers
double lower_bound = -100;
double upper_bound = 100;
std::uniform_real_distribution<double> unif(lower_bound,upper_bound);
std::default_random_engine re;
/*Initialization of data members*/
sMass=1.0014;
sPositionX= unif(re);
sPositionY= unif(re);
}
Но затем я хочу создать массив этих "систем" в моей главной функции
int main (void)
{
cSystem systems[numsist]; //numsist is a constant defined to be 1000
//Function that writes its characteristics in a file using a method that returns positions
getPositions(systems);
return 0;
}
Но в файле я просто получаю
-73.6924 -8.26997
-73.6924 -8.26997
-73.6924 -8.26997
Я думал, что я прохожу через конструктор для каждого элемент массива, давая ему другое случайное значение, но кажется, что в начале дается одно значение, а затем оно повторяется по всему вектору. Что я могу сделать, чтобы получить конструктор, который инициализирует каждый элемент случайным образом?
Примечание: я также получаю одинаковые значения при каждом запуске программы, я полагаю, что начальное число не меняется, почему случай