#include <iostream>
#include <cmath>
using namespace std;

class Point {
private:
    double x;
    double y;
public:
    Point(double xval=0, double yval=0):x(xval), y(yval){}

    Point operator+ (const Point& p) const {
        return Point(x + p.x, y + p.y);
    }

    double operator- (const Point& p) const {
        double dx = x - p.x;
        double dy = y - p.y;
        return sqrt(dx*dx + dy*dy);
    }

    void setX(double xval) { x = xval; }
    void setY(double yval) { y = yval; }
    double getX() const { return x; }
    double getY() const { return y; }
};

int main() {
    Point p1(1, 2);
    Point p2(3, 4);
    Point p3 = p1 + p2;
    cout << "p3: (" << p3.getX() << ", " << p3.getY() << ")" << endl;

    double dist = p1 - p2;
    cout << "Distance: " << dist << endl;

    return 0;
}

输出结果为:

p3: (4, 6)
Distance: 2.82843
C++ Point 类:重载运算符实现点加法和距离计算

原文地址: https://www.cveoy.top/t/topic/nXhr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录