1
以下のコードで生成されるすべてのオブジェクトは、randomNumber1とrandomNumber2の値が同じです。 std :: default_random_engineを正しく使用するには?あなたはシードを再ためだランダムなデータメンバー値を持つオブジェクトを作成するにはどうすればよいですか? C++
#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;
};
以上、コンストラクタの引数としてそれを提供しています。 'static' ...それは呼び出し側が決めるべきことです:) – xtofl
本当にランダムなシードを得るために' std :: random_device'を使用してください。 – Unimportant
@重要なはい、追加されました。 –