静态成员有时会使我感到困惑。我了解如何使用int的形式初始化简单的内置类型(例如int myClass::statVar = 10;),将其放置在.cpp文件中,但是我有以下几种类型:

class myClass
{
public:
 // Some methods...

protected:
 static RandomGenerator itsGenerator;
}

基本思想很简单:myClass需要访问其成员函数之一的随机生成器。由于每个对象都很大,因此我也只能有几个生成器实例。但是,可以说RandomGenerator类型需要“初始化”,可以说是通过调用RandomGenerator::Randomize(),编译器不允许您这样做,因为它不是const rvalue(是吗?)。

那么我该如何做呢?

还是在这种情况下我不应该使用静态变量,而是以其他方式使用它?

最佳答案

您可以创建包装器类,该包装器类中将包含RandomGenerator实例,并将在其构造函数中调用RandomGenerator::Randomize

关于c++ - 对象静态成员的初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3288848/

10-15 10:13