我不确定我在标题中使用了正确的术语,但这是我想要做的:
我有一个轻量级粒子类(简化),它需要随机行为来进行出生和墙壁碰撞。我想在课堂上保留这些设施。据我了解,静态成员只创建一次,并且可以在类的所有实例之间共享。
对于随机数生成器对象,我想调用一次种子方法,但不确定如何执行此操作,因为大多数示例使用纯静态变量或函数。
粒子.h:
#include <random>
class Particle
{
public:
Particle();
private:
static std::default_random_engine pRNG;
static std::uniform_real_distribution<> dist(0, 1);
};
粒子.cpp
#include "particle.h"
#include <ctime>
std::default_random_engine Particle::pRNG.seed(time(NULL)); // <- wrong, help!
Particle::Particle() {}
// methods, etc.
将种子方法放入 Particle 构造函数会在我想的每个出生的粒子上调用它。我能想到的唯一快速破解是在 Particle 类中添加一个 bool 成员,在第一次种子调用时将其设置为 false。