2016-11-03 4 views
0

copy ctorとmove ctorの両方を定義したクラスがある場合は、コピーctorのパラメータをconstにする必要がありますか?既に移動元のクラスにコピーctorが冗長である?

+0

はい...コメント詰め... – bolov

+0

あなたは私に理由を教えてもらえますか? –

+0

なぜあなたはそれを変更可能にしますか? ctorのctorパラメータの定数との関係は何ですか?コピー元がコピーするオブジェクトを変更しますか?いいえ、あなたはそれを 'const T&'にします。 – bolov

答えて

1

コピーctorがconst参照パラメータではなく参照パラメータを使用する場合、constオブジェクトをコピーすることはできません。移動ctorを使用すると、移動ctorが渡されたオブジェクトを移動するため、コピーctorをコピーしたいので役立たない。

と述べたように:渡されたオブジェクトを変更しない場合は、それをconst参照してください。このルールは、ctorをコピーするだけでなく、すべての関数に適用されます。

+2

:我々は参照渡しについて話しています。値渡しの場合、constは問題になりません。 – bolov

+0

@bolov良い点。私は自分の答えを更新しました。 –

関連する問題