我的工作类现在链接同一对象的方法
但有调用方法(这里的链的问题是代码
class Point{
public:
int x;
int y;
Point(int i , int j);
Point incrementX();
Point incrementY();
void print();
};
Point::Point(int i, int j){
x = i;
y = j;
}
Point Point::incrementX(){
x++;
return(*this);
}
Point Point::incrementY(){
y++;
return(*this);
}
void Point::print(){
cout << "(" << x << "," << y << ")" << endl;
}
void Q11(){
Point a(2,3);
//(3,4)
a.incrementX().incrementY().print();
//(3,3)why 33 here ??
a.print();
}
我很困惑,为什么最后一个代码a.print()
给人的(3,3)
,我尝试打印出来的方法
我里面的this
地址发现两个地址时,主叫incrementX()
和incrementY()
是不同
我的猜测是,incrementX()
访问类,但调用incrementY()
上课的时候被占用。因此,它使堆中类的副本,然后incrementY()
更改Y在副本...
所以(3,4)
被复制印刷,并(3,3)
是由实际的类印刷...
是的......我知道了...... thx! –