我是C ++的初学者,所以我不确定如何更详细地提出问题。对不起。 所以我的教授给了我这个头文件并告诉我写函数定义:
class Move
{ private:
double x;
double y;
public:
Move( double a = 0, double b = 0 ); // sets x_, y_ to a, b
void showmove(Move number) const; // shows current x_, y_ values
// add : Move --> Move
// to add x_ of input object to x_ of invoking object to get new x_,
// to add y_ of input object to y_ of invoking object to get new y_,
// to create new object initialized to new values and return it
Move add( const Move &m ) const;
void reset( double a = 0, double b = 0 ); // resets x, y to a, b
};
我不明白函数移动添加(const Move& m)const; 。通常,add函数看起来像 int add(int a,int b)。因此将2个输入组合在一起以产生1个输出。但函数Move add只有一个输入。我不知道如何为它编写定义。我问过我的朋友,我们想出了像A.add(B)这样的东西,但我不确定它是否有意义。 感谢您阅读并抱歉我的英文
答案 0 :(得分:0)
定义应该是
Move add(const Move& m) {
return Move(this->x+m.x, this->y+m.y);
}
它希望你使用m的属性直接用一个参数(对Move对象的引用)而不是两个(坐标)来获得结果。
确实,要调用此方法:
Move A/*sthg*/;
Move B/*sthg*/;
Move C = A.add(B);