如何设计一个C++类来表示一个点,该类应包含哪两个坐标数据成员?它还需要哪些功能,如友元函数和成员函数,以便能够计算两点之间的距离以及打印点的坐标信息?
时间: 2024-11-20 17:42:59 浏览: 9
为了设计一个C++类来表示一个点,我们可以创建一个名为`Point`的类,它包含两个私有数据成员`x`和`y`,分别代表点在二维空间中的横纵坐标。以下是此类的设计示例:
```cpp
class Point {
private:
double x; // 横坐标
double y; // 纵坐标
public:
// 构造函数
Point(double x = 0.0, double y = 0.0) : x(x), y(y) {}
// 获取坐标值的访问器
double getX() const { return x; }
double getY() const { return y; }
// 设置坐标值的修改器
void setX(double newX) { x = newX; }
void setY(double newY) { y = newY; }
// 计算两点间距离的友元函数 (如果需要)
friend double distance(const Point& p1, const Point& p2);
// 打印坐标信息的成员函数
void display() const {
std::cout << "Point at (" << x << ", " << y << ")" << std::endl;
}
};
// 友元函数实现两点间的距离计算
double distance(const Point& p1, const Point& p2) {
return sqrt(pow(p1.getX() - p2.getX(), 2) + pow(p1.getY() - p2.getY(), 2));
}
```
这个类提供了基本的坐标操作,如获取和设置坐标值,以及用于展示坐标和计算两点间距离的功能。友元函数`distance`允许我们在不需要将`Point`类公开给其他类的情况下计算距离。
阅读全文