我想创建一个具有静态方法的类,该方法返回对静态变量的引用(在方法内部声明)。我想要的是在调用该方法以获取静态变量的引用时。然后当我在类外修改它并再次调用该方法以获得我之前设置的相同值时。
这是我尝试过的:
#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
?
注意:我希望静态变量在方法内部显式声明,而不是作为成员。
谢谢!