C++中运算符重载的规则语法实例

2020-01-06 19:52:50刘景俊
  • 算术运算符:+,-,*,/,%,++,--;
  • 位操作运算符:&,|,~,^,<<,>>
  • 逻辑运算符:!,&&,||;
  • 比较运算符:<,>,>=,<=,==,!=;
  • 赋值运算符:=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=;
  • 其他运算符:[],(),->,,(逗号运算符),new,delete,new[],delete[],->*

    下列运算符不允许重载:

    .,.*,::,?:(上面也说了的)

    下面给例子

    
    Boxoperator+(const Box&, const Box&);

    声明加法运算符用于把两个 Box 对象相加,返回最终的 Box 对象。大多数的重载运算符可被定义为普通的非成员函数或者被定义为类成员函数。如果我们定义上面的函数为类的非成员函数,那么我们需要为每次操作传递两个参数,如上面所示。

    下面给一个比较完整的代码:

    
    #include <iostream>
    using namespace std;
    class Person{
    public:
      Person(int num) : age(num){}
      /* 类成员函数 */
      int operator+(const Person &temp){
        return (this->age+temp.age);
      }
      int age;
    };
    /* 非类成员函数 */
    int operator-(const Person &a, const Person &b){
      return (a.age-b.age);
    }
    int main()
    {
      Person John(20), Tom(18);
      cout << John+Tom << endl;
      cout << John-Tom << endl;
      return 0;
    }

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ASPKU的支持。


    注:相关教程知识阅读请移步到C++教程频道。