1.C++中的运算符除了少数几个之外,全部可以重载,而且只能重载C++中已有的运算符。
2.重载之后运算符的优先级和结合性都不会改变。
3.运算符重载是针对新类型数据的实际需要,对原有运算符进行适当的改造。一般来说,重载的功能应当与原有功能相类似,不能改变原运算符的操作对象个数,同时至少要有一个操作对象是自定义类型。
#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; }
文章评论