答えて
通常、独自の代入演算子を定義する必要があります。これは、独自の代入演算子を定義する必要があります。つまり、独自の代入演算子を定義する必要があります。これは、オブジェクトが動的に割り当てられたメモリや特別にコピーする必要のあるリソースを管理している場合に発生します。
たとえば、動的に割り当てられたメモリを指すポインタを管理するクラスがある場合、デフォルト割り当て演算子はポインタをコピーするだけです。一般に、これはあなたが望むものではありません。各オブジェクトインスタンスに割り当てられたデータのコピーのコピーを持たせたいので、独自のメモリを割り当ててコピーを実行する特別な代入演算子が必要です。これは、例えば、std::vector
がコピーまたは割り当てられたときに行う必要があるものです。
はい、動的メモリを管理するのは私の推測でした。 – user963241
@cpx:実際にはもう少し一般的です。デフォルトのコンストラクタが正しく動作しない、または使用できないリソースの種類を管理することです。これにはポインタによって保持されるメモリだけでなく、例えば 'mutex'のような他のリソースも含まれます。 –
- 1. オーバーロードされた代入演算子を使用した単一リンクリストのクローン
- 2. オーバーロードされたコピー代入演算子からC++のデフォルトのコピー代入演算子を呼び出す
- 3. オーバーロードされた代入演算子の継承
- 4. C++ BigIntegerと代入演算子オーバーロード
- 5. C++のオーバーロード代入演算子
- 6. 代入演算子のオーバーロードのアプリケーション例
- 7. オーバーロードされたポストインクリメント演算子内の変数の結果を使用してオーバーロードされたプリインクリメント演算子
- 8. オーバーロードされた演算子のオーバーロード
- 9. 2つ以上のオブジェクトに対してC++の加算代入演算子がオーバーロードされていますか?
- 10. コピー/移動操作のオーバーロードされた代入演算子ですか?
- 11. 代入とプラス演算子のオーバーロード代入
- 12. オーバーロード代入演算子、rhsは関数呼び出しです
- 13. 入れ子型のオーバーロード演算子
- 14. ポインタを使用したオーバーロードされた挿入/抽出演算子
- 15. C++の代入演算子または増分演算子
- 16. 演算子<< enum型の演算子<<は、オーバーロードされた演算子を使用しているかどうかを示します。
- 17. オーバーロードされた加算演算子を使用するのが難しい
- 18. std :: vectorを返すための代入演算子のオーバーロード
- 19. オーバーロードされた算術演算子を使用して、オーバーロードされた抽出演算子をカスケードすることは可能ですか?
- 20. オーバーロードされた後置インクリメント/デクリメント演算子のostream演算子のオーバーロード
- 21. 演算子のオーバーロードは代入演算子でどのように機能しますか?
- 22. コンテナにオーバーロードされた演算子を使用する
- 23. 時間にオーバーロードされた演算子を使用する
- 24. フレンドクラスとオーバーロードされた演算子
- 25. オーバーロードされた括弧演算子
- 26. オーバーロードされた+演算子の連結
- 27. 複合代入と加算演算子のオーバーロード
- 28. 代入演算子
- 29. Javaコンパウンド代入演算子と代入演算子
- 30. ":"演算子は代入演算子 "="と同等ですか?
私の自身の質問を投票に投票しました。 – user963241