Я пытаюсь написать программу, которая в конечном итоге сможет иметь возможность использовать, +, -, *, /, решать, (и т.д.) многочлены. Я начинаю с простого примера, пытаясь добавить два одночлена, и будет медленно основываться на нем. Я пытаюсь перегрузить оператор +, но я получаю сообщение об ошибке:Проблема с оператором перегрузки +
error no match for 'operator+' in 'm1 + m2'
В основном я называю это, как например:
Monomial m1(2,3);
Monomial m2(3,3);
Monomial result;
result = m1 + m2; // I get an error when trying to do this.
В моем заголовке полиномиального класса у меня это определяется как:
friend Polynomial operator+ (const Monomial&, const Monomial&);
путь я реализовал это:
Polynomial operator+(const Monomial& mono1, const Monomial& mono2){
Polynomial poly;
poly.coef = mono1.coef + mono2.coef; // coef stands for coefficient
poly.exp = mono1.exp; // exp stands for exponent
return poly;
}
* Примечание. Я просто пытаюсь сделать оператор + работать первым, прежде чем погрузиться в реальный случай разных экспонентов и т. Д. Это всего лишь простые простые вещи. Я перехожу в m1 (2,3), который равен 2x^3, m2 (3,3) равен 3x^3, который должен быть равен 5x^3, но я получаю сообщение об ошибке. Не беспокойтесь о том, чтобы напечатать результат, который у меня есть, который выдумал.
Не могли бы вы отправить сообщение об ошибке * complete *? Он часто содержит намеки на то, что он ожидает, а также на близкое совпадение. –
Также, как связаны «Полиномиальные» и «Мономиальные»? (Когда вы пытаетесь присвоить переменную 'Monomial' с типом' Polynomial'.) –
Вы даже включили заголовочный файл класса Polynomial? –