C++操作符重载

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;
}

 

posted @ 2017-07-13 15:19  三味线、  阅读(177)  评论(0编辑  收藏  举报