如果每一个没有任何constructor的class派生自一个”带有default constructor“的Base class,那么这个derived class的default constructor 会被视为有用的constructor,并因此需要被合成出来。它将调用上一层Base class的default constructor(依据他们的声明顺序),对一个后继派生的class而言,这个合成的constructor和一个”被显示提供的default constructor“没有任何区别。
如果设计者提供多个constructor,但其中都没有default constructor呢?编译器会扩张现有的每一个constructors,将”用以调用所有必要之default constructor "的程序代码加进去。它不会合成新的default constructor,因为其他由User所提供的constructors存在的缘故。如果同时存在”带有default constructor的member class Object“,那些default constructor也会被调用----在所有Base class constructor都被调用之后。