#include<iostream> using namespace std; class Coord{ public: Coord(int x1=0,int y1=0) { x=x1;y=y1; } friend Coord operator-(Coord &obj); void print(); private: int x,y; }; Coord oprator-(Coord &obj) { obj.x=-obj.x; obj.y=-obj.y; return obj; } void Coord:: print() {cout<<"x="<<x<<"y="<<y<<endl; } int main() { Coord ob1(50,60),ob2; ob1.print(); ob2=-ob1; ob2.print(); return 0; }
时间: 2024-03-19 14:45:11 浏览: 53
这段代码有一个拼写错误,`operator-` 被写成了 `oprator-`,应该修改为正确的写法 `operator-`。同时,`operator-` 的参数应该是一个常量引用,因为它不会修改传入的对象。修改后的代码如下:
```c++
#include <iostream>
using namespace std;
class Coord {
public:
Coord(int x1=0, int y1=0) {
x = x1;
y = y1;
}
friend Coord operator-(const Coord& obj);
void print();
private:
int x, y;
};
Coord operator-(const Coord& obj) {
Coord result(-obj.x, -obj.y);
return result;
}
void Coord::print() {
cout << "x=" << x << " y=" << y << endl;
}
int main() {
Coord ob1(50, 60), ob2;
ob1.print();
ob2 = -ob1;
ob2.print();
return 0;
}
```
这段代码定义了一个 `Coord` 类,表示平面上的一个点,`operator-` 函数重载了负号运算符,用来计算点的相反数。在 `main` 函数中,创建了一个 `Coord` 对象 `ob1`,并打印出它的坐标;然后通过 `-` 运算符计算出 `ob1` 的相反数,并将结果赋值给 `ob2`,最后打印出 `ob2` 的坐标。
阅读全文