C++中的运算符除了少数几个之外,全部可以重载,而且只能重载C++中已有的运算符。
重载之后运算符的优先级和结合性都不会改变。
运算符重载是针对新类型数据的实际需要,对原有运算符进行适当的改造。一般来说,重载的功能应当与原有功能相类似,不能改变原运算符的操作对象个数,同时至少要有一个操作对象是自定义类型。
#include <iostream>
using namespace std;
class person
{
public:
person(int Age=0,int Height=0){age=Age;height=Height;}
bool operator<(const person &data) const
{
if(age<data.age)
return 1;
else return 0;
}
bool operator==(const person &data) const
{
if(age==data.age)
return 1;
else return 0;
}
bool operator>(const person &data) const
{
if(age>data.age)
return 1;
else return 0;
}
int operator*(const person &data) const;
private:
int age;
int height;
};
inline int person::operator*(const person &data) const
{
return age*data.age;
}
int main()
{
person a(12);
person b(13);
if(a==b) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
cout<<a*b<<endl;
return 0;
}
评论区