-1
이 작은 코드 스 니펫이 있는데, 왜 이렇게 작동하는지 조금 혼란 스럽습니다. A :: put_x (3)을 호출하면 정적 함수이므로 a가 변경되지 않습니까? 감사!정적 함수에 대해 혼란 스럽습니다.
#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;
}
어떤 의미입니까? 그리고 당신이 의미하는 바가 무엇이든 변하지 않는다는 것을 어떻게 확인합니까? 게다가, "변하지 않는다"는 말은 무엇을 의미합니까? –