プログラムで += 演算子をオーバーロードしようとしています。int 次数 (多項式の最高次数) と Node* Poly (ノードへのポインター) を含む多項式クラスで構成されます。
struct Node{ int coefficient;
Node* next; };
それは私の Node 構造体ですが、Polynomial クラスでオーバーロードしています。
Polynomial& Polynomial::operator +=(const Polynomial& rP){
Polynomial copyRP(rP);
poly->coefficient = poly->coefficient + copyRP.poly->coefficient;
poly = poly->next; //if I take this and
copyRP.poly = copyRP.poly->next; //this away, it runs fine
//with it however the program compiles but doesnt work
return *this;
}
ノードには、係数の逆方向のリストが含まれます (問題がある場合)。たとえば、3x^2+2x+5 は 5->2->3 としてノードに格納され、次数は 2 です。