#include <iostream> using namespace std; class Point { public: Point(){X=0;Y=0;} Point(int x,int y){X=x;Y=y;} void copy(Point& obj); void displayxy(); private: int X,Y;}; int main() {Pointobj1(10,20), obj2; void Point::displayxy0{ cout<<X<<""; cout<<Y<<endl; void Point::copy(Point& obj){ if (this!=&obj) *this=obj; obj2.copy(obj1); 113141300 obj1.displayxy0; obj2.displayxy0; return0;}
时间: 2023-12-02 13:06:44 浏览: 69
这段代码存在一些语法错误,需要进行修正。首先是 Point 类中的两个成员函数 copy 和 displayxy 的实现需要加上函数体和函数结束的大括号。其次是在 displayxy 函数中,输出 X 和 Y 的语句中间应该加上空格,避免输出的数字连在一起。最后是在 main 函数中,调用 displayxy 函数和 copy 函数时应该加上括号。
修正后的代码如下:
```c++
#include <iostream>
using namespace std;
class Point {
public:
Point() { X = 0; Y = 0; }
Point(int x, int y) { X = x; Y = y; }
void copy(Point& obj) { if (this != &obj) *this = obj; }
void displayxy() { cout << X << " "; cout << Y << endl; }
private:
int X, Y;
};
int main() {
Point obj1(10, 20), obj2;
obj2.copy(obj1);
obj1.displayxy();
obj2.displayxy();
return 0;
}
```
输出结果为:
```
10 20
10 20
```
其中,obj1.displayxy() 输出 obj1 的 X 和 Y 坐标,obj2.displayxy() 输出 obj2 的 X 和 Y 坐标,由于 obj2.copy(obj1) 将 obj1 的值赋给了 obj2,因此 obj2 的 X 和 Y 坐标与 obj1 的相同。
阅读全文