在 C++ 中,運算符重載是通過為已有的運算符賦予新的意義,使其作用于自定義的數據類型上。運算符重載的語法是在自定義類型的名稱后加上運算符,并使用范圍解析運算符 ::
。
以下是一個簡單的例子,演示了如何為一個自定義的類 Fraction
重載加法運算符 +
:
class Fraction {
public:
// 構造函數
Fraction(int numerator = 0, int denominator = 1)
: numerator_(numerator), denominator_(denominator) {}
// 重載加法運算符
Fraction operator+(const Fraction& other) const {
int newNumerator = numerator_ * other.denominator_ + other.numerator_ * denominator_;
int newDenominator = denominator_ * other.denominator_;
return Fraction(newNumerator, newDenominator);
}
private:
int numerator_;
int denominator_;
};
在上面的例子中,我們定義了一個 Fraction
類,并重載了加法運算符 +
。在重載的函數中,我們使用了傳入參數的成員變量和本類的成員變量計算出了新的分數,并返回了一個 Fraction
對象。
除了加法運算符,我們還可以重載其他運算符,例如減法運算符 -
、乘法運算符 *
、除法運算符 /
等等。重載的運算符可以像任意其他函數一樣進行調用,例如:
Fraction f1(1, 2);
Fraction f2(3, 4);
Fraction f3 = f1 + f2; // 調用重載的加法運算符