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