【发布时间】:2017-04-24 10:12:34
【问题描述】:
下面代码生成的所有对象都具有相同的 randomNumber1 和 randomNumber2 值。如何正确使用 std::default_random_engine?
#include <random>
#include <iostream>
class Food{
public:
int randomNumber1;
int randomNumber2;
Food(){
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(1,40);
std::uniform_int_distribution<int> distribution2(1,30);
randomNumber1 = distribution(generator) * 20;
randomNumber2 = distribution2(generator) * 20;
};
};
int main(){
Food * food = new Food();
std::cout << food->randomNumber1 << " " << food->randomNumber2 << std::endl;
Food * food1 = new Food();
std::cout << food1->randomNumber1 << " " << food1->randomNumber2 << std::endl;
Food * food2 = new Food();
std::cout << food2->randomNumber1 << " " << food2->randomNumber2 << std::endl;
return 0;
};
【问题讨论】: