实现point类的“-”运算符重载 ,使其关于原点对称。将运算符函数重载为成员函数。
时间: 2024-11-04 21:15:22 浏览: 24
对point类重载++和--运算符
4星 · 用户满意度95%
在C++中,我们可以定义一个名为`Point`的类,其中包含x和y坐标属性,并重载`-`(减号)运算符以实现关于原点对称的功能。当我们在类内重载这个运算符作为成员函数时,我们可以在函数内部直接访问类的对象实例,这使得处理操作更方便。
首先,让我们定义`Point`类:
```cpp
class Point {
public:
float x;
float y;
// 构造函数
Point(float x = 0.0f, float y = 0.0f) : x(x), y(y) {}
// 重载-
Point operator-(const Point& other) const {
// 关于原点对称即每个坐标都取反
return Point(-this->x, -this->y);
}
// 提供一个get()方法获取表示点的字符串形式
std::string get() const {
return "(" + std::to_string(x) + ", " + std::to_string(y) + ")";
}
};
```
在上述代码中,`operator-`是一个常量引用版本的成员函数,它接受一个`Point`对象作为参数,然后生成一个新的`Point`对象,其x和y坐标都是当前对象的相反值。
现在,如果你有一个`Point`对象`p1`和另一个`Point`对象`p2`,你可以像这样使用`-`运算符来得到它们关于原点的对称点:
```cpp
Point p1(1.0f, 2.0f);
Point p2 = p1 - p1; // p2现在是关于原点的对称点 (-1.0f, -2.0f)
std::cout << "Symmetric point: " << p2.get() << std::endl;
```
阅读全文