c++面向对象问题,大神回答

struct A{
static int x;
int y;
public:
operator int( ){ return x-y; }
A operator ++(int){ return A(x++, y++); }
A(int x=::x+2, int y=::y+3){ A::x=x; A::y=y; }
int &h(int &x);
};

实例化一个A a(4,7);
static int x a.x A::x
中x的关系
int y a.y A::y
中y的关系

就说一下他们是否相等即可
谢谢大神

x 是类的x,x 不属于对象,而y才是属于对象,如果定义多个对象,那么每个对象的y值是不同的,而x值就是相同的,因为x是属于类的。。。

 int x;//应该有这个全局变量吧
struct A{
    static int x;//所有的A对象共用这个x
    int y;
public:
    operator int( ){ return x-y; }
    A operator ++(int){ return A(x++, y++); }

    A(int x=::x+2, int y=::y+3){ A::x=x; A::y=y; }//1、形参x,y在构造函数是可见的,为了使用其余两种,必须加修饰符
    //即 ::x是全局表量x;  A::x是A类的私有变量x

    int &h(int &x);
};

实例化一个A a(4,7);
static int x a.x A::x //三者相同,但是a.x是错误的,x是私有变量
    中x的关系
    int y a.y A::y//同理a.y也是错误的
    中y的关系