首页 > 学院 > 开发设计 > 正文

继承与派生(二)

2019-11-10 19:08:11
字体:
来源:转载
供稿:网友

一、有子对象的派生类的构造 子对象:类的数据成员中包含的类的对象 派生类构造函数的任务 对基类数据成员的初始化 对子对象数据成员的初始化 对派生类数据成员的初始化 派生类构造函数的一般形式 派生类构造函数名(总参数表列):基类构造函数名(参数表列), 子对象名(参数表列) {派生类中新增数据成员的初始化;} 二、有子对象的派生类的构造 派生类构造函数的执行顺序 调用基类构造函数,对基类数据成员初始化 调用子对象构造函数,对子对象数据成员初始化 执行构造函数本身,对派生类数据成员初始化 三、多层派生时的构造函数 派生类的构造函数只需写出其直接基类的构造函数 初始化顺序 先初始化基类Student的数据成员num和name 再初始化Student1的数据成员age 最后初始化Student2的数据成员score 四、派生类构造函数的特殊形式 当不需要对派生类的新增成员进行任何初始化操作时,派生类构造函数的函数体可以为空 如果在基类中没有定义构造函数,或定义了没有参数的构造函数,则在定义派生类构造函数时可以不写基类的构造函数 如果在基类和子对象类型的声明中都没有定义带参数的构造函数,而且也不需要对派生类自己的数据成员初始化,则可以不必显式地定义派生类构造函数 五、派生类构造函数的特殊形式 如果在基类或子对象类型的定义中都定义了带参数的构造函数,则必须显式地定义派生类的构造函数,并在派生类构造函数中写出基类或子对象的构造函数及其参数表 如果在基类中既定义了无参的构造函数,又定义了有参的构造函数,则在定义派生类的构造函数时,既可以包含基类构造函数及其参数,也可以不包含基类构造函数 六、派生类的析构函数 析构函数也不被继承,派生类自行声明 声明方法与一般(无继承关系时)类的析构函数相同 不需要显式地调用基类或子对象的析构函数,系统会自动隐式调用 析构函数的调用次序与构造函数相反


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表