当前位置:首页 C++ > 正文

operator在c++中的用法

作者:野牛程序员:2023-07-14 14:37:25 C++阅读 3055

在C++中,operator 是一个关键字,用于定义类的运算符重载函数。通过运算符重载,可以自定义类对象的行为,使其能够执行类似于内置类型的运算。

运算符重载函数使用特殊的命名约定,以关键字 operator 开头,后跟要重载的运算符符号。它们在类的内部定义,类似于普通成员函数。以下是一些常见的运算符重载函数及其对应的运算符:

  1. 一元运算符重载:

  • operator+:重载一元正号运算符。

  • operator-:重载一元负号运算符。

  • operator++:重载前缀和后缀递增运算符。

  • operator--:重载前缀和后缀递减运算符。

  • operator!:重载逻辑非运算符。

  1. 二元运算符重载:

  • operator+:重载加法运算符。

  • operator-:重载减法运算符。

  • operator*:重载乘法运算符。

  • operator/:重载除法运算符。

  • operator%:重载取模运算符。

  • operator=:重载赋值运算符。

  • operator==:重载相等运算符。

  • operator!=:重载不等运算符。

  • operator<:重载小于运算符。

  • operator>:重载大于运算符。

  • operator<=:重载小于等于运算符。

  • operator>=:重载大于等于运算符。

  • operator<<:重载左移运算符。

  • operator>>:重载右移运算符。

  • operator[]:重载下标运算符。

  • operator():重载函数调用运算符。

这些只是一些常见的运算符重载函数示例,可以根据需要重载其他运算符。需要注意的是,每个运算符的重载规则都有一些限制和特定的语法要求。在实现运算符重载函数时,请遵循相关的语法规则和最佳实践。

以下是一个简单的类示例,演示了运算符重载的用法:

class MyNumber {
private:
    int value;

public:
    MyNumber(int num) : value(num) {}

    // 重载加法运算符
    MyNumber operator+(const MyNumber& other) {
        return MyNumber(this->value + other.value);
    }

    // 重载赋值运算符
    void operator=(const MyNumber& other) {
        this->value = other.value;
    }

    // 重载输出运算符
    friend ostream& operator<<(ostream& os, const MyNumber& num) {
        os << num.value;
        return os;
    }
};

int main() {
    MyNumber num1(5);
    MyNumber num2(10);

    MyNumber sum = num1 + num2;
    cout << "Sum: " << sum << endl;

    num1 = num2;
    cout << "num1: " << num1 << endl;

    return 0;
}

在上述示例中,MyNumber 类重载了加法运算符和赋值运算符,以及输出运算符。运算符重载函数被定义为类的成员函数,可以通过操作符 += 在对象上执行自定义的操作。同时,重载输出运算符使用 friend 关键字来定义,以便能够访问私有成员变量。

请注意,以上示例仅用于说明运算符重载的基本概念,并不包含所有可能的运算符重载情况。在实际使用中,请根据具体的需求选择适当的运算符进行重载,并遵循C++语言的规范。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击