c++运算符重载(4)-- 比较运算符重载

首先比较运算符重载也其实是对类对象中的基本数据进行比较,当然是根据实际需求对相应数据进行比较,并不是比较内部的全部数据

假设,我们比较Human类对象中的age成员谁大谁小?  

如果不使用比较运算符重载,我们需要通过接口获取age成员的值来进行比较,有了比较运算符重载,我们直接可以使用对象进行比较,更加方便。 

 当然比较运算符既可以使用成员函数和全局函数来重载,此处使用成员函数,全局函数和前面类似。

class Human {
public:
	Human(int age, int salary, const char* name);
	bool operator>(const Human& man);
private:
	int age;
	int salary;
	string name;
};

int main(void) {
	Human man1(18, 15000, "ABC");
	Human man2(17, 15000, "BCD");

	if (man1 > man2) {
		cout << "比较成功" << endl;
	}

	system("pause");

	return 0;
}

Human::Human(int age, int salary, const char* name)
{
	this->name = name;
	this->salary = salary;
	this->age = age;
}

bool Human::operator>(const Human& man)
{
	if (this->age > man.age)  return true;

	return false;
}

代码分析:   

1.   bool operator>(const Human& man);  是大于运算符重载函数的声明

2.  符合一般的比较,根据结果返回真或者假。 

3.  对象的比较,并不是其内部的全部数据的比较,而是根据使用场合,比较其内部的一些数据,来判断谁大谁小。(比如此处只比较age,age大的对象就大) 

 

其余比较运算符重载和>是类似的。 

你可能感兴趣的:(c++,开发语言)