为什么这会给我一个链接器错误?(使用随机数生成<random>)
Why is this giving me a linker error? (random number generation using <random>)
注意:coord是std::pair
class Random
{
public:
Random()
{
gen.seed(rd());
};
coord rnd_coord(int x, int y)
{
std::uniform_int_distribution<> dist_x(0, x - 1);
std::uniform_int_distribution<> dist_y(0, y - 1);
coord temp;
temp.first = dist_x(gen);
temp.second = dist_y(gen);
return temp;
}
private:
static std::random_device rd;
static std::mt19937 gen;
};
main.cpp
int x;
Random R;
coord C;
C = R.rnd_coord(10, 10);
std::cout << C.first << ", " << C.second << std::endl;
std::cin >> x;
return 0;
我做了一些测试,但我有很多问题:(,虽然我在一段时间没有编程。无论如何,我想做一个辅助函数,将返回指定范围内的随机坐标,说的函数是在"snake_utilities .h",但因为它给了我错误,我把它放在一个类中,现在我得到链接器错误:
错误1错误LNK2001:未解析的外部符号"private: static "类std::random_device随机::rd"(? rd@Random@@0Vrandom_device@std@@A) C:UsersReethokDesktop c++ 宠物项目主要蛇蛇 。obj Snake Error 2 Error LNK2001: unresolved外部符号"private":静态类std:: mersenne_twister_engine随机:创"(gen@Random@@0V ? mersenne_twister_engine@I ca@ $ 0 cha@ $ 0美元bin@ 0 bp@ 0美元jjailanp@ 0 l@ 0美元pppppppp@ 06 jncmfgia@ $ 0 p@ $ 0美元opmgaaaa@ 0 bc@ 0 gmahijgf@@std@@a)美元C:UsersReethokDesktop c++ 宠物项目主要蛇蛇 。obj Snake Error 3 Error LNK1120: 2C: users reethok desktop c++ PetProjectsSnakeDebugSnake.exe 1 1 Snake
提前感谢!
在构造类的实例时构造类的非static
成员变量。另一方面,static
成员变量对于类的所有实例都是相同的。它们需要显式地定义。
需要在封闭的命名空间中定义static
成员变量。添加
std::random_device Random::rd;
std::mt19937 Random::gen;
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 整数不会重复超过随机数
- if数组上的随机数
- EASTL矢量<向量<int>>连续的
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 半随机数生成C++
- 程序在尝试猜测它选择的随机数时进入无限循环?
- 有没有办法在 c++ 中同时生成随机数?如果没有,是否有解决方法?
- 具有随机数的二维数组不会更改
- 随机数未达到限制
- 我想生成许多矩阵并用随机数填充它
- <random>在实践中应该实际使用哪个随机数引擎? std::mt19937?
- 制作具有平均值的随机数生成器
- 为什么 rand 不在我的代码中生成随机数?
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- 从给定种子生成相同的随机数序列C++
- 随机数生成函数说明
- C++ 尝试生成随机数时弹出警告帮助?
- 尝试在 c++ 中创建随机数生成器并收到错误
- 从给定的随机数组值生成随机数 Arduino程序C++