0

実行時に static float 変数の値を設定する必要がありますが、それができません。私の状況を詳しく説明するために例を提供します

afile.h

class B {
    static float variable1;
    static float variable2;
 public:
    afunction(float a, float b);
} 

afile.cpp

#include 'afile.h'
B::afunction (float a, float b) {
    float B:variable1 = a;
    float B:variable2 = b;
} 

上記のコードでわかるように、関数 'afunction' が呼び出され、変数 'variable1' と 'variable2' を設定する必要があります。「afunction」の定義のコードが間違っていることはわかっていますが、実行時に variable1 と variable2 の値を設定する方法が必要です。

私のコードに関係がある場合は、Visual Studio 6.0 を使用してアプリケーションを開発しています。

4

2 に答える 2

1

書くだけ:

B::afunction (float a, float b) {
    B::variable1 = a;
    B::variable2 = b;
}

それはうまくいくはずです。

于 2013-02-11T09:09:28.293 に答える
1

最初に、静的変数を参照する前に何かを設定する必要があります。

あなたなしint test::m_ran = 0;では得られないundefined reference to 'test::m_ran'

#include <cstdio>

class test
{
public:
    static void run() { m_ran += 1; }
    static void print() { printf("test::run has been ran %i times\n", m_ran); }

private:
    static int m_ran;

};

int test::m_ran = 0;

int main()
{
    for (int i = 0; i < 4; ++i)
    {
        test::run();
        test::print();
    }

    return 0;
}

出力:

test::run has been ran 1 times
test::run has been ran 2 times
test::run has been ran 3 times
test::run has been ran 4 times
于 2013-02-11T09:18:38.760 に答える