cout << f1+f2 << endl;需要如何重载+运算符
时间: 2023-10-30 15:06:53 浏览: 144
运算符重载
如果 `f1` 和 `f2` 是自定义的类,我们可以通过重载 `+` 运算符来实现 `cout << f1+f2 << endl;` 的功能。
要重载 `+` 运算符,可以在类中定义一个成员函数或者定义一个全局函数。以下是定义一个全局函数来重载 `+` 运算符的示例:
```c++
class Fraction {
public:
int numerator, denominator;
Fraction(int n, int d) : numerator(n), denominator(d) {}
};
Fraction operator+(const Fraction& f1, const Fraction& f2) {
int n = f1.numerator * f2.denominator + f2.numerator * f1.denominator;
int d = f1.denominator * f2.denominator;
return Fraction(n, d);
}
```
在上面的示例中,我们定义了一个名为 `operator+` 的全局函数来重载 `+` 运算符。该函数接受两个参数,分别为 `Fraction` 类型的对象 `f1` 和 `f2`,并返回一个新的 `Fraction` 对象,其值等于 `f1` 和 `f2` 相加的结果。
使用重载后的 `+` 运算符时,可以直接像使用内置类型一样使用:
```c++
Fraction f1(1, 2), f2(2, 3);
cout << f1 + f2 << endl;
```
输出结果为:
```
7/6
```
阅读全文