美文网首页
Boolan-1-5 操作符重载

Boolan-1-5 操作符重载

作者: FAN_Z | 来源:发表于2017-07-20 19:30 被阅读0次
    1. 操作符重载实现为类成员函数
      重载的操作符在类体中被声明,声明方式如同普通成员函数一样,只不过他的名字包含关键字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作为该函数的一个参数传递给该函数,从而实现了两个对象的比较。

    1. 操作符重载实现为非类成员函数(全局函数)
      对于全局重载操作符,代表左操作数的参数必须被显式指定。例如:

    include

    include

    using namespace std;
    class person
    {
    public:
    int age;
    public:
    };

    bool operator==(person const &p1 ,person const & p2)

    //满足要求,做操作数的类型被显示指定
    {
    if(p1.age==p2.age)
    return true;
    return false;
    }
    int main()
    {
    person rose;
    person jack;
    rose.age=18;
    jack.age=23;
    if(rose==jack)
    cout<<"ok"< return 0;
    }

    相关文章

      网友评论

          本文标题:Boolan-1-5 操作符重载

          本文链接:https://www.haomeiwen.com/subject/pfpjkxtx.html