1. 程式人生 > 其它 ># day-05 類和物件--C++運算子過載--關係運算符過載

# day-05 類和物件--C++運算子過載--關係運算符過載

技術標籤:c++c++

類和物件–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種關係運算符也同理