📜  在C++中可以重载的运算符是什么?(1)

📅  最后修改于: 2023-12-03 14:51:15.182000             🧑  作者: Mango

在C++中可以重载的运算符是什么?

C++中可以对部分运算符进行重载,以实现我们自定义的操作。重载后的运算符可以像原始运算符一样使用,但它们执行不同的操作,这样就可以方便我们自定义类型的行为。

以下是在C++中可以重载的运算符:

  • 算术运算符: +, -, *, /, %
  • 一元运算符: +, -, ++, --, !, ~
  • 比较运算符: ==, !=, <, >, <=, >=
  • 位运算符: &, |, ^, <<, >>
  • 赋值运算符: =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
  • 下标运算符: []
  • 函数调用运算符: ()
  • 成员访问运算符: ->
  • 类成员访问运算符: .*

我们可以使用类和重载运算符的组合来创建自定义类型,这样可以方便我们进行自定义类型的各种操作,例如:

class Vector {
public:
    Vector(int x, int y) : x_(x), y_(y) {}

    // 重载运算符 "+"
    Vector operator+(const Vector& other) const {
        return Vector(x_+other.x_, y_+other.y_);
    }

    // 重载运算符 "-"
    Vector operator-(const Vector& other) const {
        return Vector(x_-other.x_, y_-other.y_);
    }

private:
    int x_;
    int y_;
};

int main() {
    Vector v1(1, 2);
    Vector v2(2, 3);
    Vector v3 = v1 + v2; // 调用重载的 "+" 运算符
    Vector v4 = v1 - v2; // 调用重载的 "-" 运算符
    return 0;
}

以上代码演示了如何重载运算符 "+" 和 "-",并在自定义类型 Vector 上使用。