第⑦章继承与派生 H classemployee protected charname ∥姓名 intindividual EmpNo ∥个人编号 intgrade ∥级别 floataccumPay )薪总额 staticintemployeeNo ∥本公司职员编号目前最大值
第7章 继承与派生 classemployee { protected: char*name; //姓名 intindividualEmpNo; //个人编号 intgrade; //级别 floataccumPay; //月薪总额 staticintemployeeNo; //本公司职员编号目前最大值
第⑦章继承与派生 H publIc employee employee voidpayo 计算月薪函数 voidpromote(int) 升级函数 voiddisplay status ∥示人员信息 classtechnician publicemployee
第7章 继承与派生 public: employee(); ~employee(); voidpay(); //计算月薪函数 voidpromote(int); //升级函数 voiddisplayStatus(); //显示人员信息 }; classtechnician:publicemployee
第⑦章继承与派生 H private floathourly Rate ∥|小时酬金 intworkHours ∥月工作时数 public technician( ∥构造函数 voiapay 计算月薪函数 voiddisplaystatuso 显示人员信息
第7章 继承与派生 { private: floathourlyRate; //每小时酬金 intworkHours; //当月工作时数 public: technician(); //构造函数 voidpay(); //计算月薪函数 voiddisplayStatus(); //显示人员信息 };
第⑦章继承与派生 H 1.吸收基类成员 在类继承中,第一步是将基类的成员全盘接收 这样派生类实际上就包含了它的所有基类中除构造和 析构函数之外的所有成员。注意,在派生过程中,构 造函数和析构函数都不被继承。这一点将在74节中详 细介绍。这里派生类 technician继承了基类 employee中 除构造和析构函数之外的所有成员:name, individualEmpNo, grade, accumPay, employeeNo payO), promote(int), displaystatusO。经过派生过程, 这些成员便存在于派生类之中
第7章 继承与派生 1.吸收基类成员 在类继承中,第一步是将基类的成员全盘接收, 这样派生类实际上就包含了它的所有基类中除构造和 析构函数之外的所有成员。注意,在派生过程中,构 造函数和析构函数都不被继承。这一点将在7.4节中详 细介绍。这里派生类technician继承了基类employee中 除构造和析构函数之外的所有成员:name, individualEmpNo,grade,accumPay,employeeNo, pay(),promote(int),displayStatus()。经过派生过程, 这些成员便存在于派生类之中
第⑦章继承与派生 H 2.改造基类成员 对基类成员的改造包括两个方面。第一是基类成 员的访问控制,主要依靠派生类声明时的继承方式来 控制,将在73节中详细介绍。第二是对基类数据或函 数成员的覆盖,就是在派生类中声明一个和基类数据 或函数同名的成员,例如,上例中的pay)和 displaystatusO。如果派生类声明了一个和某个基类成 员同名的新成员(如果是成员函数,则参数表也要相同 参数不同的情况属于重载),派生的新成员就覆盖了外 层同名成员
第7章 继承与派生 2.改造基类成员 对基类成员的改造包括两个方面。第一是基类成 员的访问控制,主要依靠派生类声明时的继承方式来 控制,将在7.3节中详细介绍。第二是对基类数据或函 数成员的覆盖,就是在派生类中声明一个和基类数据 或函数同名的成员,例如,上例中的pay()和 displayStatus()。如果派生类声明了一个和某个基类成 员同名的新成员(如果是成员函数,则参数表也要相同, 参数不同的情况属于重载),派生的新成员就覆盖了外 层同名成员