在C++中,對 int,float,double 類型數據進行四則計算時,我們常常用到 + , - ,* ,/ 這四種運算符。但是如果我們要對我們自定義的類型進行 +, -, *, /運算時,我們要如何進行呢?
實際上我們可以通過構造函數來進行,但是當運算多次使用時,多次抽調函數是一件很麻煩的事情。所以C++中添加了 運算符重載(關鍵字**operator + 運算符**) 這樣一個功能,可以通過一次定義,就可以達到對自定義類型數據的 +,-,*,/ 運算。
接下來舉例說明:
#include<iostream>
using namespace std;
//在此處,我構建了一個自定義的Person類
class Person
{
public:
//此處構建了兩個Person類的屬性
int m_A;
int m_B;
//成員函數運算符重載,用 operator + 重載 “+” 運算符
Person operator+ (Person& p) {
Person temp;
//定義Person類中“ + ”運算符的具體操作
temp.m_A = this->m_A + p.m_A;
temp.m_B = this->m_B + p.m_B;
return temp;
}
};
int main() {
//定義兩個Person實例 p1 , p2
Person p1;
p1.m_A = 10;
p1.m_B = 10;
Person p2;
p2.m_A = 10;
p2.m_B = 10;
//運算符重載實質其實爲函數的調用
Person p3 = p1.operator+(p2);
//運算符重載實際用法,實現對自定義類的相加運算
Person p4 = p1 + p2;
//輸出結果校驗
cout << p4.m_A << endl;
cout << p4.m_B << endl;
system("pause");
return 0;
}
接下來是運算結果,顯示重載後的 “ + ” 運算符實現了對自定義類Person四則運算的功能
注意:重載的運算符也是可以有重載函數的