Я новичок в C++, и у меня есть проблема с перегрузкой оператора. Я только что реализовал функции в файле заголовка. Я хочу добавить две дробные числа в простую форму друг другу. Я реализовал gcd для упрощения и реализовал оператор + для добавления вместе bu. Я получил ошибку для части в operator + .Error находится в фракцию добавить (f1.getNum1()) f1 не highligted: "ни одного примера конструкции (фракция :: фракции) согласования СпискаАргументов, типы (интермедиат, Int)" Вот код:Перегрузка фракции оператора
a& operator+=(const a& f1,const a& f2){
a add(f1.getNum1()*f2.getDen2()+f2.getNum2()*f1.getDen1(),f1.getDen1()*f2.getDen2());
return add;
}
#endif
I есть еще одна проблема в коде main.cpp no operator "< <" соответствует этим операндам операнда. Инициализатор конструктора. Теперь я хочу добавить к дробным номерам. Но я получаю сообщение об ошибке для cout "< < "в левой части результата: result=fractional1+fractional2; cout << num1 <<"/"<< den1 <<"+"<<num2<<"/"<< den2 <<" = "<<result <<endl;
Функция 'fraction (int num1, int num2, int den1, int den2)' использует значение 'this-> num1',' this-> num2', 'this-> den2' и' this- > den2' перед их настройкой. –
dup? :) http://stackoverflow.com/q/30000121/86967 - передача неправильных аргументов конструктору – nobar