这份代码有什么问题class Point { public: Point(double xx=0,double yy=0); void Set(double xx,double yy); void Output(); double GetX() {return x; } double GetY() {return y; } private: double x,y; }; int main() { double m,n; cin >> m >> n; Point p1; p1.Output(); p1.Set(m,n); p1.Output(); Point p2(3,4); cout << p2.GetX() << "," << p2.GetY() << endl; return 0; } void Point:: Set(double xx, double yy) { x = xx; y = yy; } void Point:: Output() { cout << "(" << x << "," << y << ")"; }
时间: 2024-01-18 08:04:46 浏览: 22
这份代码没有明显的错误,但是有一些可以改进的地方:
1. 构造函数应该在类的声明中定义,而不是在类的外部定义。
2. 可以添加一个默认构造函数,以便在创建对象时不必传递参数。
3. 可以添加一个析构函数,以便在对象生命周期结束时释放资源。
4. 可以将类的成员变量设置为私有的,以防止外部直接访问和修改。
改进后的代码如下:
```
#include <iostream>
using namespace std;
class Point {
public:
Point(double xx = 0, double yy = 0) : x(xx), y(yy) {}
Point(const Point& other) : x(other.x), y(other.y) {}
~Point() {}
void Set(double xx, double yy) { x = xx; y = yy; }
void Output() const { cout << "(" << x << "," << y << ")"; }
double GetX() const { return x; }
double GetY() const { return y; }
private:
double x, y;
};
int main() {
double m, n;
cin >> m >> n;
Point p1;
p1.Output();
p1.Set(m, n);
p1.Output();
Point p2(3, 4);
cout << p2.GetX() << "," << p2.GetY() << endl;
return 0;
}
```