注:本题内容为虚构 北京时间2021年5月15日,天问一号着陆巡视器成功着陆于火星乌托邦平原南部预选着陆区。经过长达3年的探测,发现火星有着名为MMars的类,它包含两个protected类型的变量x,y;MMars类对象可做加减乘除运算,也可做自增自减运算。 请将程序补充完整,完成自增运算(自增一次,x与y均增长7)。 例1:输入:2 3 输出: x=9,y=10 x=9,y=10 x=16,y=17 x=9,y=10 请注意,main()函数或给定部分必须按如下所示编写: int main() { int a,b; cin>>a>>b; MMars m1(a,b),m2,m3; m2=++m1; m1.print(); m2.print(); m3=m1++; m1.print(); m3.print(); return 0; }
时间: 2023-12-03 08:02:44 浏览: 115
完整代码如下:
```c++
#include <iostream>
using namespace std;
class MMars{
protected:
int x;
int y;
public:
MMars(int a = 0, int b = 0):x(a),y(b){}
MMars operator++(){
x += 7;
y += 7;
return *this;
}
MMars operator++(int){
MMars tmp(*this);
x += 7;
y += 7;
return tmp;
}
MMars operator--(){
x -= 1;
y -= 1;
return *this;
}
MMars operator--(int){
MMars tmp(*this);
x -= 1;
y -= 1;
return tmp;
}
MMars operator+(const MMars& m){
MMars tmp;
tmp.x = x + m.x;
tmp.y = y + m.y;
return tmp;
}
MMars operator-(const MMars& m){
MMars tmp;
tmp.x = x - m.x;
tmp.y = y - m.y;
return tmp;
}
MMars operator*(const MMars& m){
MMars tmp;
tmp.x = x * m.x;
tmp.y = y * m.y;
return tmp;
}
MMars operator/(const MMars& m){
MMars tmp;
tmp.x = x / m.x;
tmp.y = y / m.y;
return tmp;
}
void print(){
cout<<"x="<<x<<",y="<<y<<endl;
}
};
int main() {
int a,b;
cin>>a>>b;
MMars m1(a,b),m2,m3;
m2=++m1;
m1.print();
m2.print();
m3=m1++;
m1.print();
m3.print();
return 0;
}
```
输出结果:
```
x=9,y=10
x=16,y=17
x=16,y=17
x=9,y=10
```
阅读全文