#include < iostream > using namespace std; class Point { private: //访问权限设置,私有权限 int x;//横坐标 int y;//纵坐标 public: //访问权限设置,公有权限 //以下为构造函数,用参数a,b分别为横纵坐标进行初始化 Point (int a,int b) { x=a ; y=b ; } //以下为拷贝构造函数,借用对象a_point完成初始化 Point( const Point & a_point) { x=a_point.x; y=a_point.y; } //以下为析构函数 ~Point { cout<<"Deconstructed Point"; print(); } //以下为输出点的信息的函数,要求在一行中输出点的坐标信息,形如:(横坐标,纵坐标) void print() { cout<< x <<","<< ycon <<endl; } }; int main() { Point b_point(0,0); b_point.print(); int a,b; //从标准输入流中提取数值给a,b Point c_point(a,b); c_point.print(); //主函数的返回语句 } /*设输入为10 10,则本程序的运行结果为: */完善这段代码
时间: 2024-03-27 12:37:17 浏览: 78
这段代码存在一些问题,需要进行完善:
1. 在main函数中,没有从标准输入流中读入a和b的值就直接使用了,需要在读入a和b的语句前加上如下代码:
```cpp
cin >> a >> b;
```
2. 在Point类的析构函数中,需要在类名后面添加一对小括号,即:
```cpp
~Point()
```
3. 在print函数中,输出语句中的变量名错误,应该是y而不是ycon,应该修改为:
```cpp
cout << x << "," << y << endl;
```
修改后的代码如下所示:
```cpp
#include <iostream>
using namespace std;
class Point {
private:
int x; //横坐标
int y; //纵坐标
public:
//以下为构造函数,用参数a,b分别为横纵坐标进行初始化
Point(int a, int b)
{
x = a;
y = b;
}
//以下为拷贝构造函数,借用对象a_point完成初始化
Point(const Point& a_point)
{
x = a_point.x;
y = a_point.y;
}
//以下为析构函数
~Point()
{
cout << "Deconstructed Point";
print();
}
//以下为输出点的信息的函数,要求在一行中输出点的坐标信息,形如:(横坐标,纵坐标)
void print()
{
cout << x << "," << y << endl;
}
};
int main()
{
Point b_point(0, 0);
b_point.print();
int a, b;
cin >> a >> b;
Point c_point(a, b);
c_point.print();
return 0; //主函数的返回语句
}
```
阅读全文