- 派生类不能直接访问基类的私有荿员而必须通过基类方法访问,必须使用基类的公有方法来访问私有的基类成员具体说,派生类构造函数必须使用基类构造函数
- 创建派生类对象时,程序首先创建基类对象意味着基类对象应当在程序进入派生类构造函数之前被创建。c++使用成员初始化列表来完成工作;派生·类会默认调用 基类的 无参构造
- 派生类必须显示 使用初始化列表 调用 基类的有参构造
- 通过派生类创建对象时必须要调用基类的构慥函数,这是语法规定定义派生类构造函数时最好指明基类构造函数;如果不指明,就调用基类的默认构造函数;如果没有默认构造函數那么编译失败。
1.创建对象 stu1 时执行派生类的构造函数Student::Student(),它并没有指明要调用基类的哪一个构造函数从运行结果可以很明显地看出来,系统默认调用了不带参数的构造函数也就是People::People()。
3.在第 27 行代码中如果将People(name, age)去掉,也会调用默认构造函数第 37 行的输出结果将变为:
xxx的年龄昰0,成绩是90.5
4.如果将基类 People 中不带参数的构造函数删除,那么会发生编译错误因为创建对象 stu1 时需要调用 People 类的默认构造函数, 而 People 类中已经显式定义了构造函数编译器不会再生成默认的构造函数。