return w;w是函数的一个局部变量,调用完就会被销毁如果你真的想返回定义成指针 指针放是在堆里的A x = new A();return x
你的重载+函数中的w是临时变量,返回以后就销毁了,所以error可以改为,返回A+B的A{x+=t.x;y+=t.y;return *this;}