Как правильно сделать умножение полинома на число? Почему я не могу умножить полином на число?[Error] no match for 'operator<<' (operand types are 'std::basic_ostream' and 'Polynom') Вызов:cout << "5 * g = " << g * 5 << endl; В класе:Polynom Polynom::operator *(double c) { return multiple(c, *this); } Polynom multiple(double c, const Polynom& p) { if (c == 0) { Polynom result; return result; } else { int degree = p.degree; double* new_exponents = new double[degree];
for (int i = 0; i < degree; i++) { new_exponents[i] = c * p.exponents[i]; }
Ошибка возникает из-за того, что оператор << не имеет определения для вывода объекта класса Polynom. Для того чтобы правильно умножить полином на число и вывести результат, необходимо перегрузить оператор << для класса Polynom.
Вы должны добавить перегрузку оператора << в вашем классе Polynom или вне его, чтобы можно было выводить объекты класса Polynom в поток вывода. Например, вы можете добавить следующую перегрузку оператора << вне класса Polynom:
Ошибка возникает из-за того, что оператор << не имеет определения для вывода объекта класса Polynom. Для того чтобы правильно умножить полином на число и вывести результат, необходимо перегрузить оператор << для класса Polynom.
Вы должны добавить перегрузку оператора << в вашем классе Polynom или вне его, чтобы можно было выводить объекты класса Polynom в поток вывода. Например, вы можете добавить следующую перегрузку оператора << вне класса Polynom:
ostream& operator <<(ostream& os, const Polynom& p) {os << "{ degree: " << p.degree << "; coefficients: " << p.getCoefficientsStr() << " }";
return os;
}
После этого ваш вызов cout << "5 * g = " << g * 5 << endl; должен работать правильно.