C++ 运算符重载:实现加法、取负、输入输出
下面是一个示例代码,演示了如何使用 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 著作权归作者所有。请勿转载和采集!