alvido_bahor
2016-01-09 09:51
采纳率: 57.1%
浏览 1.6k

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的关系

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • YXTS122 2016-01-09 09:59
    已采纳

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

    已采纳该答案
    打赏 评论
  • ysuwood 2016-01-09 13:39
     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的关系
    
    打赏 评论

相关推荐 更多相似问题