我想提出一个简单的Random
类使用随机类:以静态方式
class Random
{
public:
static bool seeded = false;
static void SeedRandom(int number)
{
srand(number);
}
static int GetRandom(int low, int high)
{
if (!seeded)
{
srand ((int)time(NULL));
}
return (rand() % (high - low)) + low;
}
};
显然C++不允许一整类被声明为static
(这是什么使这很容易在C# )。我改为让所有成员为static
。也没有static
的构造函数,所以我没有办法初始化我的bool seeded
,除非我手动调用一个函数,这会破坏目的。我可以改为使用一个常规的构造函数,在这个构造函数中我将不得不创建一个Random
的实例,我不想这样做。
此外,有没有人知道如果新的C++ 0x标准将允许静态类和/或静态构造函数?
你班里的'bool seeded = false'位无效。只有静态的** const ** intergal成员可以用这种方式在类的主体中初始化。您必须单独声明“种子”并在声明点(而不是定义点)对其进行初始化。 – 2011-04-21 07:46:49