Я новичок в C++, и у меня проблема с перегрузкой операторов. Я только что реализовал функции в заголовочном файле. Я хочу добавить две простейшие формы дробных чисел друг к другу. Я реализовал gcd для упрощения и реализовал оператор + для добавления вместе, но я получил ошибку для части в операторе +. Ошибка находится в фракция add(f1.getNum1()) f1 выделена: «Нет экземпляра конструкции (fraction::fraction), соответствующего списку аргументов, типы (int,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
У меня есть другая проблема в коде main.cppни один оператор "‹‹" не соответствует этим операндам операндов. Я инициализирую конструктор. Теперь я хочу добавить к дробным числам. Но я получаю сообщение об ошибке для 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
перед их установкой. - person David Schwartz   schedule 08.05.2015