8

私はこのようなコードを持っています:

class MyClass
{
   private:
     static const int intvalue= 50;
     static const float floatvalue = 0.07f;
 };

Visual Studio 2010 で、次のエラーが発生します。

Myclasses.h(86): error C2864: 'MyClass::floatvalue : only static const integral data members can be initialized within a class

では、C++ で静的定数 float を初期化する方法は?

コンストラクターを使用すると、このクラスのオブジェクトが作成されるたびに、変数が初期化されますが、これは良くありません。

どうやらコードは Linux 上の GCC でコンパイルされているようです。

4

3 に答える 3

1

以下を試してください。

ヘッダー ファイルで、現在のステートメントの代わりに次のように記述します。

static const float floatvalue;

CPP ファイルに次のように記述します。

const float MyClass::floatvalue = 0.07f;
于 2013-07-10T09:09:54.063 に答える