我得到了这个小代码片段,我有点困惑为什么它以这种方式工作。当我调用A :: put_x(3)时,由于它是一个静态函数,所以不会改变吗?谢谢!
#include<iostream>
using namespace std;
class A
{
private:
static int x;
int y;
public:
A(int i) { x = i; y = -i; }
static int put_x(A a) { return x + a.y; }
};
int A::x = 5;
int main()
{
A a(7);
cout << A::put_x(3);
return 0;
}
答案 0 :(得分:2)
显示正确的结果。
静态X变化的痕迹:
当你调用put_x时,它会计算临时对象的x(现在是&#39; s 3)和y(-3)之和。 结果为0,如预期的那样。