下面是一个示例代码,演示了如何使用 C++ 来实现运算符重载 +、-(负号),以及重载 <<、>> 运算符,并通过对象进行输出运算得到结果:

#include <iostream>

class MyNumber {
private:
    int value;
public:
    MyNumber(int val) : value(val) {}

    MyNumber operator+(const MyNumber& other) const {
        int result = value + other.value;
        return MyNumber(result);
    }

    MyNumber operator-() const {
        int result = -value;
        return MyNumber(result);
    }

    friend std::ostream& operator<<(std::ostream& os, const MyNumber& num) {
        os << num.value;
        return os;
    }

    friend std::istream& operator>>(std::istream& is, MyNumber& num) {
        is >> num.value;
        return is;
    }
};

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

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

    MyNumber negation = -num1;
    std::cout << "Negation: " << negation << std::endl;

    std::cout << "Enter a number: ";
    MyNumber input;
    std::cin >> input;
    std::cout << "You entered: " << input << std::endl;

    return 0;
}

在上面的代码中,我们定义了一个名为 MyNumber 的类,它具有一个私有成员变量 value 表示一个整数。我们通过构造函数来初始化这个值。

然后,我们使用运算符重载 operator+ 来实现两个 MyNumber 对象的相加操作。在这个重载函数中,我们将两个对象的值相加,并返回一个新的 MyNumber 对象,它的值为相加的结果。

接着,我们使用运算符重载 operator- 来实现对一个 MyNumber 对象的取反操作。在这个重载函数中,我们将对象的值取负,并返回一个新的 MyNumber 对象,它的值为取反的结果。

我们还通过重载 operator<< 和 operator>> 运算符来实现对象的输出和输入操作。在 operator<< 中,我们将对象的值输出到流中。在 operator>> 中,我们从流中读取一个整数,并将其赋值给对象的值。

在 main 函数中,我们创建了两个 MyNumber 对象 num1 和 num2,并分别对它们进行加法、取反和输入操作,并将结果输出到控制台。

运行上面的代码,输出结果应该为:

Sum: 15
Negation: -5
Enter a number: 20
You entered: 20

原文地址: https://www.cveoy.top/t/topic/juQ7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录