C++ 運算符重載是一種修改或擴展已有運算符行為的方法,使其適應自定義的數據類型。要實現簡單的運算符重載,請遵循以下步驟:
首先,了解要重載的運算符以及其預期行為。例如,如果要重載加法運算符(+),需要了解其正常情況下是如何工作的。
創建一個類,該類將包含要進行運算符重載的數據成員。例如,可以創建一個名為 MyNumber
的類,其中包含一個整數值。
class MyNumber {
public:
int value;
MyNumber(int v) : value(v) {}
};
add
的成員函數。確保函數的參數和返回類型與要重載的運算符相匹配。class MyNumber {
public:
int value;
MyNumber(int v) : value(v) {}
MyNumber add(const MyNumber& other) const {
return MyNumber(value + other.value);
}
};
MyNumber operator+(const MyNumber& lhs, const MyNumber& rhs) {
return MyNumber(lhs.value + rhs.value);
}
現在,已經成功實現了簡單的 C++ 運算符重載。可以使用以下代碼測試重載的運算符:
#include <iostream>
int main() {
MyNumber a(3);
MyNumber b(4);
MyNumber c = a.add(b); // 使用成員函數重載的運算符
MyNumber d = a + b; // 使用非成員函數重載的運算符
std::cout << "a + b = " << c.value << std::endl; // 輸出:a + b = 7
std::cout << "a + b = " << d.value << std::endl; // 輸出:a + b = 7
return 0;
}