n3290 草案§12.1(构造函数)¶5中的一点:
隐式声明的默认构造函数是
inline public
其类的成员。类的默认默认构造函数X
在以下情况下定义为已删除:
X
是一个类似联合的类,它有一个带有非平凡默认构造函数的变体成员,- 任何没有大括号或等号初始化器的非静态数据成员都是引用类型,
- 任何没有大括号或相等初始化器的 const 限定类型(或其数组)的非变体非静态数据成员都没有用户提供的默认构造函数,
X
是一个联合,它的所有变体成员都是 const 限定类型(或其数组),X
是一个非联合类,并且任何匿名联合成员的所有成员都是 const 限定类型(或其数组),- 任何直接或虚拟基类,或没有大括号或相等初始化器的非静态数据成员,具有类类型
M
(或其数组),并且M
没有应用于M
的默认构造函数的默认构造函数或重载决议(13.3)导致歧义或导致从默认的默认构造函数中删除或无法访问的函数,或- 任何直接或虚拟基类或非静态数据成员都具有带有
析构函数的类型,该析构函数已从默认的默认构造函数中删除或不可访问
请用一些示例程序解释默认的默认构造函数。