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