n3290ドラフト§12.1(コンストラクター)からのポイント¶5:
暗黙的に宣言されたデフォルトコンストラクターは、
inline public
そのクラスのメンバーです。クラスのデフォルトのデフォルトコンストラクタX
は、次の場合に削除済みとして定義されます。
X
は、自明ではないデフォルトのコンストラクターを持つバリアントメンバーを持つユニオンのようなクラスです。- ブレースまたはイコールイニシャライザーのない非静的データメンバーは、参照型であり、
- brace-or-equal-initializerを持たないconst-qualified型(またはその配列)の非バリアント非静的データメンバーには、ユーザー提供のデフォルトコンストラクターがありません。
X
はユニオンであり、そのバリアントメンバーはすべてconst修飾型(またはその配列)であり、X
は非ユニオンクラスであり、匿名ユニオンメンバーのすべてのメンバーはconst修飾型(またはその配列)であり、- 直接または仮想の基本クラス、または中括弧または等しい初期化子を持たない非静的データメンバーは、クラスタイプ
M
(またはその配列)を 持ち、デフォルトのコンストラクターまたはデフォルトのM
コンストラクターに適用されるオーバーロード解決(13.3)を持ちません。M
結果として、あいまいさ、またはデフォルトのデフォルトコンストラクターから削除された、またはアクセスできない関数、または- 直接または仮想の基本クラスまたは非静的データメンバーは
、デフォルトのデフォルトコンストラクタから削除またはアクセスできないデストラクタを持つタイプを持っています
デフォルトのデフォルトコンストラクタをいくつかのサンプルプログラムで説明してください。