回答編集履歴

1

update

2019/06/03 02:01

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -2,4 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- コピーコンストラクタ`Polynomial::operator=(const Polynomial&)`は`const Polynomial&`を引数にとりますが、この実引数を`copy_Pol`メンバ関数に渡そうとすると「`const Polynomial&`から`Polynomial&`への変換」がj必要になってしまいます。C++ではconst修飾を外す変換は(非常に危険なため)自動的では行いませんから、質問中にある通りコンパイルエラーとなります。
5
+ コピーコンストラクタ`Polynomial::operator=(const Polynomial&)`は`const Polynomial&`を引数にとりますが、この実引数を`copy_Pol`メンバ関数に渡そうとすると「`const Polynomial&`から`Polynomial&`への変換」が必要になってしまいます。C++ではconst修飾を外す変換は(非常に危険なため)自動的では行いませんから、質問中にある通りコンパイルエラーとなります。
6
+
7
+
8
+
9
+ ----
10
+
11
+ (コードレビュー的観点になりますが)`copy_Pol`メンバ関数の処理内容と、コピーコンストラクタの処理がかみ合っていないようです。`copy_Pol`では引数`result`に計算結果が格納されるようですが、コピーコンストラクタの右辺`rhs`を渡そうとしています。これでは `a = b;` の `b` 側が変更されてしまうのでは?