-1
多項式クラスを作成していましたが、演算子のオーバーロードが発生しました。私は+ =演算子をうまくオーバーロードすることができた(私は)と思っていましたが、多くのソースでアドバイスされているように、+ =を使用する外部関数を作成しました。それは動作しますが、私はこのオーバーロードされた+演算子の連結
poly a, b, c, d;
a=b+c+d;
のような多項式を追加しようとすると、私はエラーを取得何らかの理由 のためにそれらをチェーンすることはできません:「ポリ::ポリ(定数ポリ)」への呼び出しに該当する機能を
マイ+ =関数の本体は、すべてのことは重要ではないですが、それはそれはどのようなものかです:
poly& operator+= (const poly& a){
//implemented +=
return *this;
}
マイ加算関数(クラスの外で)次のようになります。
const poly operator+ (poly a, const poly & b){
a+= b;
return a;
}
私はここで間違っていますか?
なぜ 'operator +'が 'const'を返すのですか? – vu1p3n0x
'a'と' b'の両方が 'const 'でなければなりません。 –
[コピーコンストラクタ](https://stackoverflow.com/questions/2168201/what-is-a-copy-constructor-in-c)がありません。 –