как добавить две переменные, заданные конструктором, и использовать их внутри метода - PullRequest
0 голосов
/ 17 июня 2020

, пожалуйста, простите меня, если это сбивает с толку, потому что я новичок в C ++ (или любом другом языке программирования). У меня есть эта строка кода в моем задании, но когда я пытаюсь запустить программу, я получаю сообщение об ошибке (a+b).double(), в котором говорится, что ни один оператор не соответствует операнду +. Я считаю, что сделал что-то не так.

  #include<iostream>
  #include<math.h>

  class fraction {
  private:
    signed int numerator;
    signed int denominator;
  public:
    fraction(signed int a, signed int b);
    double getDecimal() {
        return 1.00*numerator / denominator;
    }
  };
  fraction::fraction(signed int a, signed int b) {
    numerator = a;
    denominator = b;
  }
  int main() {
    fraction a(1, 2);
    fraction b(3,2);
    std::cout << a.decimal() << "\n!" << b.decimal << "\n!";
    std::cout << (a+b).getDecimal();
  }

(a+b).getDecimal() должен возвращать 2. как заставить код работать без изменения части (a+b).getdecimal()?

1 Ответ

0 голосов
/ 17 июня 2020

как заставить код работать без изменения части (a+b).getdecimal()?

Вы определяете оператор + для fraction операндов, например:

    fraction operator +(fraction b)
    {
        return fraction(this->numerator*b.denominator+b.numerator*this->denominator,
                        this->denominator*b.denominator);
    }
...