Я пытаюсь определить класс Util со статической переменной-членом MAX_DIST в следующем смысле:
class Util{
public:
static double MAX_DIST;
Util():MAX_DIST(400.0){}
};
и иметь возможность обновлять его в каком-либо другом классе, например.
Util::MAX_DIST = 387.98;
Это дает мне ошибку:
‘double Util::MAX_DIST’ is a static data member; it can only be initialized at its definition
Однако, если я инициализирую MAX_DIST в его определении, например
class Util{
public:
static const double MAX_DIST = 400;
Util();
};
(Мне нужно добавить «const» в соответствии с инструкциями компилятора, иначе я получу ошибку «ISO C++ запрещает инициализацию неконстантного статического члена в классе») Теперь я не могу изменить MAX_DIST в других местах, так как теперь готовы только:
error: assignment of read-only variable ‘Util::MAX_DIST’
После безрезультатных поисков в интернете не могу найти решение этого парадокса. Кто-нибудь может мне помочь?