1) 如果一个类没有任何构造函数,但他含有一个成员对象,该成员对象含有默认构造函数,那么编译 器就为该类合成一个默认构造函数,因为不合成一个默认构造函数那么该成员对象的构造函数不能调 用;

2) 没有任何构造函数的类派生自一个带有默认构造函数的基类,那么需要为该派生类合成一个构造函 数,只有这样基类的构造函数才能被调用;

3) 带有虚函数的类,虚函数的引入需要进入虚表,指向虚表的指针,该指针是在构造函数中初始化 的,所以没有构造函数的话该指针无法被初始化;

4) 带有一个虚基类的类

还有一点需要注意的是:

1) 并不是任何没有构造函数的类都会合成一个构造函数

2) 编译器合成出来的构造函数并不会显示设定类内的每一个成员变量