c++关于符号重载

A:  操作符重载实现为类成员函数

  重载的操作符在类体中被声明,声明方式如同普通成员函数一样,只不过他的名字包含关键字operator,以及紧跟其后的一个c++预定义的操作符。

可以用如下的方式来声明一个预定义的==操作符:

class person{
private:
    int age;
    public:
    person(int a){
       this->age=a;
    }
   inline bool operator == (const person &ps) const;
};

//实现方式如下:
inline bool person::operator==(const person &ps) const
{
     if (this->age==ps.age)
        return true;
     return false;
}

//调用方式如下:
#include
using namespace std;
int main()
{
  person p1(10);
  person p2(20);
  if(p1==p2) cout<<”the age is equal!”< return 0;
}


 这里,因为operator ==是class person的一个成员函数,所以对象p1,p2都可以调用该函数,上面的if语句中,相当于p1调用函数==,把p2作为该函数的一个参数传递给该函数,从而实现了两个对象的比较。

posted @ 2013-07-31 22:12  z折腾  阅读(268)  评论(0)    收藏  举报