在C++中,我們可以使用類(class)和運算符重載(operator overloading)來創建一個名為point的類,并實現一些基本的數學運算。下面是一個簡單的示例:
#include <iostream>
class Point {
public:
// 構造函數
Point(double x = 0, double y = 0) : x_(x), y_(y) {}
// 獲取x坐標
double getX() const {
return x_;
}
// 獲取y坐標
double getY() const {
return y_;
}
// 重載加法運算符
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& point) {
os << "(" << point.x_ << ", " << point.y_ << ")";
return os;
}
private:
double x_;
double y_;
};
int main() {
Point p1(3, 4);
Point p2(1, 2);
Point p3 = p1 + p2;
Point p4 = p1 - p2;
std::cout << "p1 + p2 = " << p3 << std::endl;
std::cout << "p1 - p2 = " << p4 << std::endl;
return 0;
}
在這個示例中,我們定義了一個名為Point的類,包含了兩個私有成員變量x_和y_,分別表示點的橫坐標和縱坐標。我們還定義了一些公共成員函數,如getX()、getY()、operator+()、operator-()和operator<<()。
operator+()和operator-()分別實現了Point類的加法和減法運算。這兩個函數都接受一個const Point&類型的參數,表示要與之進行運算的點。在函數體內,我們分別計算兩個點的橫坐標和縱坐標之和或之差,并返回一個新的Point對象。
operator<<()是一個友元函數,用于重載輸出運算符。這個函數接受一個std::ostream&類型的參數和一個const Point&類型的參數,表示要輸出的點。在函數體內,我們將點的橫坐標和縱坐標以逗號分隔的形式輸出到指定的輸出流中。
在main()函數中,我們創建了兩個Point對象p1和p2,并分別計算它們的和p3和差p4。最后,我們將結果輸出到控制臺。