C++ 重写简写运算符

C++提供了很多简写的运算符,比如:+=、-=、*=、/= 和 %= 。我们在Rational类(C++ 有理数类)中重载这些运算符。

废话不多说,直接上代码,我们用+=来举例。

1. 修改Rational.h文件

Rational& operator+=(const Rational& secondRational);

注意我在返回类型的Rational后面加了符号“&”,这是因为+=这个运算符要做赋值操作。(详细参考上一篇博客C++ 重写[]运算符

2. 修改Rational.cpp文件

Rational& Rational::operator+=(const Rational& secondRational) {
    *this = add(secondRational);
    return *this;
}

3. 测试

#include <iostream>
#include "Rational.h"

using namespace std;

int main()
{
    Rational r1(4, 2);
    Rational r2(2, 3);

    cout << r1[0] << "/" << r1[1] << " + " << r2[0] << "/" << r2[1] << " = ";
    r1 += r2;
    cout << r1.toString() << endl;

    return 0;
}

运行结果:

其他简写运算符和+=几乎一样,就不多赘述了。

posted @ 2020-05-31 10:22  川尘  阅读(802)  评论(0编辑  收藏  举报
`