自分で定義していない場合この場合、デフォルトコンストラクタコピーコンストラクタデストラクタコピー代入演算子が自動で定義されます。//コピー代入演算子呼び出し}自動定義で、コピー関係(コピーコンストラクタ、コピー代入演算子)は、クラスのメンバ変数を全てコピーしてくれています。自分で定義するときは、この点に注意しましょう。自分で定義した場合1~4の内、自分で定義した部分は、自動で定義されません。例として、シリアルコードは一つ限りでコピーの必要はないとします。余計なミスを起こさないためにもコピーを禁止したい。これを解決するのが、先ほどの手動定義です。コピー関係(コピーコンストラクタ、コピー代入演算子)をpublicではなくprivateで宣言すればいいのです。意味アクセスエラーとリンクエラーの2重エラーでコピーできなくしています。private9行、10行目にクラス外で呼び出しているのでアクセスエラーがでます。定義していない(関数の後に{}を付ていない)場合を宣言といいます。宣言しただけの関数を呼び出すとリンクエラーがでるので、privateの条件をクリア(たとえば、クラス内でコピーしようと)したとしても、事実上呼び出すことが不可能になります。リンクエラーをコンパイルエラーにリンクエラーは実行するまでエラーを吐いてくれません。アクセスエラー}};継承よって、先ほどのリンクエラーをアクセスエラーにすることができます。おわりに簡潔なソースコードを書くためにも自動定義で十分な場合は、それに任せましょう。