梳理各种运算符的重载首先定义一个类Point,有两个
时间: 2024-10-24 15:06:46 浏览: 16
在C++中,运算符重载是指允许我们在自定义类中改变内置运算符的行为,使得这些运算符可以作用于该类的对象。例如,如果你定义了一个名为`Point`的类表示二维坐标,你可以重载加法`+`、减法`-`等运算符,使其能够按预期处理点的坐标。
首先,你需要定义一个`Point`类,并包含两个私有成员变量(如x和y)。然后,在类中声明运算符函数,通常使用前缀`operator`加上相应的运算符名称,例如:
```cpp
class Point {
private:
double x;
double y;
public:
// 构造函数和其他成员函数
// 重载加法运算符
Point operator+(const Point& other) const {
return Point{x + other.x, y + other.y};
}
// 重载减法运算符
Point operator-(const Point& other) const {
return Point{x - other.x, y - other.y};
}
// 其他可能需要重载的运算符,如 *=、/= 等
// 如果想支持友元函数,可以这样做:
friend std::ostream& operator<<(std::ostream& os, const Point& p); // 输出运算符重载
};
// 输出运算符重载示例
std::ostream& operator<<(std::ostream& os, const Point& p) {
return os << "Point (" << p.x << ", " << p.y << ")";
}
```
当你创建两个`Point`对象并进行加法或减法操作时,实际会调用的是你自己定义的这些运算符函数,而不是默认的数学意义。
阅读全文