const Polynomial operator +(const Polynomial lhs, const Polynomial rhs){
//lhs is 1
Polynomial result(lhs);
result+=rhs;
//when I add rhs to my result it also increments my lhs and lhs is now 3
cout<<"item: "<<rhs<<endl;
return result;
}
int size;
Monomial *polynome; // my polynome is an array of monomials
//p[0]= 2, p[1]=3x etc.
私はデフォルトのコピーコンストラクターを使用しています(私は定義していませんでした)、私が知らない配列へのポインターを持っているので、おそらくそれが問題です。+= 演算子は必要に応じて共有しないでください。問題なく動作しているように見えますが、ひどく実装されているため、何が起こっているのかを説明するのに 30 分かかります。これは私を夢中にさせています、解決策はありますか?
編集: ディープ コピー コンストラクターを定義すると、問題が解決しました。ヒントをありがとう!