一元运算符重载


  • C++运算符只对基础类型进行了运算定义,如果是自己定义的类型例如类和结构体,这就需要对运算符进行重载,编写适合的方法
  • C++运算符的重载形式
    •   成员函数:在类中编写,省略了左操作数,隐含this指针,如果左操作数不是类对象,则只能使用全局函数
    •        友元函数:为了能够操作类中的私有属性,所以需要加上友元,当然如果属性用方法引出来,则不需要友元。
  • 运算符重载是一个函数。
    •   操作数即输入实参
    •        含有返回值
  • 一元运算符++/--
    •   前置++
      •   实现形式
      • //friend function 
        A& operator++(A& a)
        {
            a.dat += 20;
            return a;
        }
        //member function
        A& operator++( )
        {
            this->dat += 20;
            return *this;
        }
    • 后置++
      •   实现形式
      • //friend function
        A operator++(A&a, int)
        {
            A c = a;
            a.dat += 10;
            return c;
        }
        
        //member function
        A operator++( int)
        {
            A c = a;
            this->dat += 10;
            return c;
        }

        后置++是先使用在++。所以需要加入一个变量

      • 为了区分重载函数,不能以返回值作为判断标准,所以加入了一个没用的占位符int作为判断标准

原文地址:https://www.cnblogs.com/bixiaopengblog/p/8456549.html