gpt4 book ai didi

c++ - C++ 中的重载运算符 -=

转载 作者:行者123 更新时间:2023-11-30 01:25:14 25 4
gpt4 key购买 nike

<分区>

我已经为我的 Rational 类定义了 operator -= 的重载:

rational.hh:
class Rational {

public:
Rational(int numerator, int denominator) : numerator(numerator), denominator(denominator)
{ }

int getNumerator() const;
int getDenominator() const;
Rational& operator-=(const Rational& bar);

private:
int numerator, denominator;

rational.cc:
Rational& Rational::operator-=(const Rational& subtracted) {
Rational result((*this).getNumerator()*subtracted.getDenominator() - (*this).getDenominator()*subtracted.getNumerator(), (*this).getDenominator()*subtracted.getDenominator());
return *this;
}

代码在没有警告的情况下编译,但是这段代码没有改变 r 的值:

  Rational r(1, 1);
r -= Rational(1, 2);

有什么想法吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com