静的変数 (メソッド内で宣言されている) への参照を返す静的メソッドを持つクラスを作成したいと考えています。私が欲しいのは、メソッドを呼び出して静的変数の参照を取得するときです。次に、クラスの外でそれを変更し、メソッドを再度呼び出して、以前に設定したのと同じ値を取得します。
これが私が試したことです:
#include <iostream>
using namespace std;
class A
{
public:
static int& f()
{
static int i;
return i;
}
};
int main()
{
static int i;
i = A::f();
cout << i << endl;
i = 11;
cout << i << endl;
i = A::f();
cout << i << endl;
return 0;
}
問題は、このコードの出力が次のようになることです。
0
11
0
Press <RETURN> to close this window...
なぜ戻らないのですか0, 11, 11
、どうすれば戻せ0, 11, 11
ますか?
注:静的変数は、メンバーとしてではなく、メソッド内で明示的に宣言する必要があります。
ありがとう!