5-3 多级派生类的构造函数
题目描述
通过本题目的练习可以掌握派生类构造函数的定义和使用方法。要求定义一个基类Person,它有3个protected的数据成员:姓名
name(char *类型)、性别 sex(char类型)、年龄age(int类型);一个构造函数用于对数据成员初始化。创建Person类的公有派生类
Employee,增加两个数据成员 基本工资 basicSalary(int类型) 请假天数leaveDays(int型);为它定义初始化成员信息的构造
函数,和显示数据成员信息的成员函数show()。创建Employee类的公有派生类Manager;增加一个成员 业绩 performance(float类
型);为它定义初始化成员信息的构造函数,和显示数据成员信息的成员函数show()。
输入
共6个数据,分别代表姓名、性别、年龄、基本工资、请假天数、业绩。每个数据之间用一个空格间隔。
输出
如示例数据所示,共5行,分别代表姓名、年龄、性别、基本工资、请假天数、业绩
示例输入
Jerry m 32 4200 1 100
示例输出
name:Jerry age:32 sex:m basicSalary:4200 leavedays:1 performance:100
提示
来源
黄晶晶
示例程序
#include <iostream> #include <string> using namespace std; class Person { public: Person(){} Person(string nam,char s,int a) { name=nam; sex=s; age=a; } void setdata() { cin>>name>>sex>>age; } void show1() { cout<<"name:"<<name<<endl; cout<<"age:"<<age<<endl; cout<<"sex:"<<sex<<endl; } protected: string name; char sex; int age; }; class Employee:public Person { public: Employee(){} Employee(string nam,char s,int a,int b,int c):Person(nam,s,a) { basicSalary=b; leaveDays=c; } void setemploy() { setdata(); cin>>basicSalary>>leaveDays; } void show() { show1(); cout<<"basicSalary:"<<basicSalary<<endl; cout<<"leavedays:"<<leaveDays<<endl; } protected: int basicSalary; int leaveDays; }; class Manager:public Employee { public: Manager(){} Manager(string nam,char s,int a,int b,int c,float p):Employee(nam,s,a,b,c) { performance=p; } void Set() { setemploy(); cin>>performance; } void display() { show(); cout<<"performance:"<<performance<<endl; } protected: float performance; }; int main() { Manager man; man.Set(); man.display(); return 0; }

浙公网安备 33010602011771号