如果基类有构造函数,但没有默认构造函数,那么派生类的构造函数必须显示地调用基类的某个构造函数:
一般来说最好的方法是为基类建立一个默认构造函数,就可以避免上述问题。
总结:
若DC有构造函数而BC没有,当创建DC类的对象时,DC的相应构造函数被自动调用。
若DC没有构造函数而BC有,则BC必须拥有默认构造函数。只有这样,当创建DC类的对象时,才能自动执行BC的默认构造函数。
若DC有构造函数,且BC有默认构造函数,则创建DC类对象时,BC的默认构造函数会自动执行,除非当前被调用的派生类构造函数在其初始化段中显示地调用了BC的非默认构造函数。
若DC和BC都有构造函数,但BC没有默认构造函数,则DC的每个构造函数必须在其初始化段中显示地调用BC某个构造函数只有这样,当创建DC对象时。BC的构造函数才有机会执行。