Код: Выделить всё
#pragma once
#include
#include
using namespace std;
class NoPolinomio
{
private:
int base;
int potencia;
NoPolinomio* proximo;
public:
NoPolinomio(int b, int p) {
base = b;
potencia = p;
proximo = nullptr;
}
NoPolinomio* getProximo() {
return proximo;
}
void setProximo(NoPolinomio* p) {
proximo = p;
}
int getBase() {
return base;
}
void setBase(int p) {
base = p;
}
int getPotencia() {
return potencia;
}
void setPotencia(int p) {
potencia = p;
}
NoPolinomio& operator+=(NoPolinomio& no) {
if (potencia == no.getPotencia()) {
base += no.getBase();
}
return *this;
}
NoPolinomio operator+(NoPolinomio& no) {
if (potencia != no.getPotencia()) {
return *this;
}
return NoPolinomio(base + no.getBase(), potencia);
}
bool operator==(NoPolinomio& no) {
return (base == no.getBase() && potencia == no.getPotencia());
}
friend ostream& operatorgetPotencia();
final.Inserir(baseFinal, potenciaFinal);
atual2 = atual2->getProximo();
}
atual = atual->getProximo();
}
*this = final;
return *this;
}
ListaPolinomio operator*(ListaPolinomio& lista2) {
ListaPolinomio final;
NoPolinomio* atual = lista2.getHead();
while (atual != nullptr) {
NoPolinomio* atual2 = lista2.getHead();
while (atual2 != nullptr) {
int baseFinal = atual->getBase() * atual2->getBase();
int potenciaFinal = atual->getPotencia() + atual2->getPotencia();
final.Inserir(baseFinal, potenciaFinal);
atual2 = atual2->getProximo();
}
atual = atual->getProximo();
}
return final;
}
};
int main() {
ListaPolinomio lista;
ListaPolinomio lista2;
lista.Inserir(2, 2);
lista.Inserir(2, 8);
lista.Inserir(2, 3);
lista2.Inserir(4, 3);
lista2.Inserir(-2, 4);
//lista*=lista2;
//ListaPolinomio lista3 = lista * lista2;
lista = lista * lista2;
return 0;
}
- создал новый список и получил умножение двух других
- используйте *= в списке, умножая его на другой
- используйте тот же список, чтобы умножать его на другой

Подробнее здесь: https://stackoverflow.com/questions/792 ... verloading
Мобильная версия