modifier une variable membre statique en C++

Je suis en train de définir une classe Util avec une variable membre statique MAX_DIST, dans le sens suivant,

class Util{

 public:
    static double MAX_DIST;
    Util():MAX_DIST(400.0){}
};

et être en mesure de mettre à jour d'une autre classe, par exemple

Util::MAX_DIST = 387.98;

Cela me donne une erreur:

double Util::MAX_DIST is a static data member; it can only be initialized at its definition

Cependant, si j'initialise MAX_DIST à sa définition, comme

class Util{

 public:
    static const double MAX_DIST = 400;
    Util();
};

(J'ai du ajouter le 'const' comme indiqué par le compilateur, sinon je vais avoir une "ISO C++ forbids initialisation dans les classes de non-const membre statique d'erreur")
Maintenant je ne peux pas modifier MAX_DIST dans d'autres endroits, car il est maintenant prêt seulement:

error: assignment of read-only variable Util::MAX_DIST

Après des recherches infructueuses sur internet, je ne peux pas trouver une solution à ce paradoxe. Quelqu'un peut-il m'aider?

OriginalL'auteur yang | 2012-11-18