C++中,子类 初始化列表里都有上一层的构造函数?

就是说,爷类,父类,子类。创建子类对象。
那么子类构造函数的初始化列表里自动生成父类默认构造函数(去调用)。

调用父类构造函数时,父类的构造函数初始化列表里又有爷类默认构造函数?

是的,一般来说,子类继承了父类的某些数据成员或成员函数,在子类实例化时(即初始化时)就需要去填充从父类继承来的“东西”,而C++中类与类之间,是“你做你的,我做我的,仅是以接口作沟通”(体现的是面向对象性,你是你,我是我,大家各做各的),因此从父类继承来的“东西”就需要用父类去构造,而子类的构造函数(这里指的是花括号之间)初始化的是自己新增的数据成员;另外,要注意是先构造父类,再构造子类,而初始化列表上的函数调用都在子类的构造函数之前。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-07
如果你主动调用父类构造函数,那么就不一定调的是默认构造函数,也可以调带参的,如果你不调父类构造函数,那么创建子类对象时,会自动初始化父类的默认构造函数追问

恩 我就是说不主动的情况下。所谓的调用,是否是按照上面的这种方式?

追答

是的

相似回答