我试图用静态成员变量 MAX_DIST 定义一个类 Util,在以下意义上,
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++ 禁止非 const 静态成员的类内初始化”错误)现在我不能在其他地方修改 MAX_DIST,因为它现在是仅准备:
error: assignment of read-only variable ‘Util::MAX_DIST’
在互联网上搜索无果后,我找不到解决这个悖论的方法。有人可以帮我吗?