関数のdefault/delete宣言は
- デフォルトコンストラクタ
- コピーコンストラクタ
- ムーブコンストラクタ
- コピー代入演算子
- ムーブ代入演算子
- デストラクタ
といったクラス定義時に暗黙的に定義される関数に対する制御を行う。
「= default」は暗黙定義のデフォルト定義を使うことを明確にする。
つまり、自前のカスタマイズをしているとエラーになるので、暗黙定義のカスタマイズを許可したくないときに使う。
「= delete」は暗黙定義を明示的に禁止する。目的はコピー禁止のクラスを定義するような場合に使用する。
コメントを残す