-1
 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 分かかります。これは私を夢中にさせています、解決策はありますか?

編集: ディープ コピー コンストラクターを定義すると、問題が解決しました。ヒントをありがとう!

4

1 に答える 1