C++運算符重載是指在編寫自定義類時,可以重定義類中的運算符,使其能夠對類的對象進行特定的操作。通過運算符重載,可以使得自定義類的對象能夠以與內置類型相似的方式進行運算。
運算符重載通過在類中定義相應的成員函數或全局函數來實現。重載運算符的函數名是固定的,以operator
關鍵字開頭,后面跟著要重載的運算符符號。例如,重載加法運算符+的函數名為operator+
。
重載運算符的函數可以有自定義的參數類型和返回類型,以滿足特定的需求。通過重載運算符,可以實現類的對象之間的加法、減法、乘法、除法等運算,以及比較運算、賦值運算等。
以下是一個示例,演示了如何重載類的加法運算符:
class MyClass {
private:
int value;
public:
MyClass(int val) : value(val) {}
MyClass operator+(const MyClass& other) {
return MyClass(value + other.value);
}
int getValue() {
return value;
}
};
int main() {
MyClass obj1(5);
MyClass obj2(10);
MyClass obj3 = obj1 + obj2;
cout << "Sum: " << obj3.getValue() << endl; // 輸出:Sum: 15
return 0;
}
在上述示例中,MyClass
類重載了加法運算符+,使得兩個MyClass
對象可以通過+運算符相加。在運算符+的重載函數中,通過對兩個對象的值進行相加,創建一個新的MyClass
對象,并將其作為返回值返回。
通過運算符重載,可以使得自定義類的對象能夠以更直觀、簡潔的方式進行運算,提高了代碼的可讀性和靈活性。