# day-05 類和物件--C++運算子過載--關係運算符過載
阿新 • • 發佈:2021-01-27
類和物件–C++運算子過載
C++ 預定義的運算子,只能用於基本資料型別的運算,不能用於物件的運算
如何使運算子能用於物件之間的運算呢
關係運算符過載
關係運算符包括:
1.<
2.<=
3.>
4.>=
5.==
6.!=
當我們想比較兩個事物之間的關係
一般方法
int main(){
int a = 10;
int b = 10;
if (a == b) {
cout << " a等於b " << endl;
}
else
cout << " a不等於b" << endl;
system("pause");
return 0;
}
執行結果:
但想比較兩個物件之間的大小時,則要運用關係運算符的過載operator==
程式碼:
#include <iostream>
using namespace std;
class Person {
public:
Person(string name, int age) {
this->m_Name = name;
this->m_Age = age;
};
bool operator==(Person& p) {
if (this->m_Name == p.m_Name && this->m_Age == p.m_Age) {
return true;
}
else
return false;
}
string m_Name;
int m_Age;
};
void test(){
Person p1("阿董", 18);
Person p2("阿董", 18);
if (p1 == p2){
cout << " p1 等於 p2 " << endl;
}
else
cout << " p1 不等於 p2 " << endl;
}
int main(){
test();
system("pause");
return 0;
}
執行結果:
注意
if (this->m_Name == p.m_Name && this->m_Age == p.m_Age)
//如果自身的m_Name等於傳參傳進來的m_Name 且 自身的m_Age等於傳參傳進來的m_Age
其餘5種關係運算符也同理