次の意味で、静的メンバー変数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’
インターネットで無駄な検索をした後、私はこのパラドックスの解決策を見つけることができません。誰かが私を助けることができますか?