静态成员有时会使我感到困惑。我了解如何使用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/