C++双目运算符+=的重载详解

目录

  • 1、+=重载
  • 2、friend重载+=
  • 3、运算符
    • 3.1 单目运算符
    • 3.2 双目运算符
    • 3.3 三目运算符
  • 4、重载++和重载- -
    • 总结

      1、+=重载
      class Complex{public: Complex(int a, int b): _a(a), _b(b) {} Complex& operator+= (Complex& other) {this->_a += other._a; this->_b += other._b; return *this; } void print() {cout << _a << endl; cout << _b << endl; }private: int _a; int _b; }; void TestLei(){ int a = 10, b = 20, c = 30; Complex c1(10, 20); Complex c2(20, 30); Complex c3(30, 40); c1 += c2 += c3; c1.print(); }

      C++双目运算符+=的重载详解
      文章图片


      2、friend重载+=
      class Complex{public: Complex(int a, int b): _a(a), _b(b) {} friend Complex& operator+= (Complex& c1, Complex& c2) {c1._a += c2._a; c1._b += c2._b; return c1; } void print() {cout << _a << endl; cout << _b << endl; }private: int _a; int _b; }; void TestFriend(){ int a = 10, b = 20, c = 30; Complex c1(10, 20); Complex c2(20, 30); Complex c3(30, 40); c1 += c2 += c3; c1.print(); }

      C++双目运算符+=的重载详解
      文章图片


      3、运算符
      3.1 单目运算符
      单目运算符是指运算所需变量为一个的运算符。
      逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++,–】、负号运算符【-】
      类型转换运算符【(类型)】、指针运算符和取地址运算符【*和&】、长度运算符【sizeof】

      3.2 双目运算符
      双目运算符就是对两个变量进行操作。
      初等运算符
      下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】 算术运算符
      乘法运算符【*】、除法运算符【/】、取余运算符【%】 、加法运算符【+】、减法运算符【-】
      关系运算符
      等于运算符【==】、不等于运算符【!=】 、关系运算符【< > <=> = 】
      逻辑与运算符【&&】、逻辑或运算符【||】、逻辑非运算符【!】
      位运算符
      按位与运算符【&】、按位异或运算符【^】 、按位或运算符【|】、左移动运算符【<<】、右移动运算符【>>】
      赋值运算符 赋值运算符【= += -= *= /= %= >>= <<= &= |= ^=】 逗号运算符 【,】

      3.3 三目运算符
      对三个变量进行操作;
      b ? x : y


      4、重载++和重载- -
      class Test{public: Test(int t = 0):_t(t) {} Test& operator++() // 前置++ {++_t; return *this; } Test operator++(int)// 后置++ {Test temp = *this; ++_t; return temp; } Test& operator--()// 前置-- {--_t; return *this; } Test operator--(int)// 后置-- {Test temp = *this; --_t; return temp; } int Result() {return _t; }private: int _t; };


      总结 【C++双目运算符+=的重载详解】本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

        推荐阅读