Меня иногда смущают статические члены. Я понимаю, как инициализировать простой встроенный тип, такой как int
, чем-то вроде int myClass::statVar = 10;
, который вы помещаете в файл .cpp, но у меня есть что-то вроде следующего:
class myClass
{
public:
// Some methods...
protected:
static RandomGenerator itsGenerator;
}
Основная идея достаточно проста: myClass
требуется доступ к генератору случайных чисел для одной из его функций-членов. У меня также может быть только несколько экземпляров генератора, так как каждый объект довольно большой. Однако тип RandomGenerator
должен быть, так сказать, "инициализирован" вызовом RandomGenerator::Randomize()
, чего компилятор не позволит вам сделать, поскольку это не константное значение (правильно?).
Итак, как я могу заставить это работать?
Или, может быть, мне не следует использовать статическую переменную в этом случае, а сделать это как-то иначе?