温馨提示×

c++operator要怎么编写

c++
小樊
81
2024-11-19 16:26:48
栏目: 编程语言

在C++中,运算符重载是一种允许你自定义已有运算符行为的方法。你可以为类或结构体重载运算符,使其具有类似于内置类型的行为。以下是一些常见运算符的重载示例:

  1. 加法运算符(+):
class MyClass {
public:
    MyClass a, b;

    MyClass operator+(const MyClass& other) const {
        MyClass result = *this;
        result.a += other.a;
        result.b += other.b;
        return result;
    }
};
  1. 减法运算符(-):
class MyClass {
public:
    int a, b;

    MyClass operator-(const MyClass& other) const {
        MyClass result = *this;
        result.a -= other.a;
        result.b -= other.b;
        return result;
    }
};
  1. 乘法运算符(*):
class MyClass {
public:
    int a, b;

    MyClass operator*(const MyClass& other) const {
        MyClass result;
        result.a = a * other.a;
        result.b = b * other.b;
        return result;
    }
};
  1. 除法运算符(/):
class MyClass {
public:
    int a, b;

    MyClass operator/(const MyClass& other) const {
        MyClass result;
        result.a = a / other.a;
        result.b = b / other.b;
        return result;
    }
};
  1. 赋值运算符(=):
class MyClass {
public:
    int a, b;

    MyClass& operator=(const MyClass& other) {
        if (this != &other) {
            a = other.a;
            b = other.b;
        }
        return *this;
    }
};

注意:

  • 运算符重载应该遵循类似于内置类型的语义。
  • 对于一元运算符(如++、–等),你需要为类定义一个成员函数版本和一个非成员函数版本。
  • 在重载运算符时,尽量使其具有自然或易于理解的行为。
  • 不要随意改变运算符的优先级和结合性。

0