老师职工多重身份

#include<string>
#include  <iostream>
using  namespace  std;

//*****      1、Teacher类      *****//
class  Teacher
{
public:
        //声明Teacher类构造函数
        Teacher();
        Teacher(string ,int, char,string,string,string);
        //声明Teacher类  display  函数
        void display();
protected:
        //声明Teacher类数据成员
        string name;
        int age;
        char sex;
        string title;
        string address;
        string tel;
};

//定义Teacher类构造函数
Teacher::Teacher()
{
}
Teacher::Teacher(string a,int b,char c,string d,string e,string f)
{
    name=a;
    age=b;
    sex=c;
    title=d;
    address=e;
    tel=f;
}

//定义Teacher类  display  函数
void Teacher::display()
{
    cout<<"name:"<<name<<endl;
    cout<<"age:"<<age<<endl;
    cout<<"sex:"<<sex<<endl;
    cout<<"title:"<<title<<endl;
    cout<<"address:"<<address<<endl;
    cout<<"tel:"<<tel<<endl;

}


//*****      2、Cadre类      *****//
class  Cadre
{
public:
        //声明Cadre类构造函数
        Cadre();
        Cadre(string);
        //声明  display  函数
        void display();
protected:
        //声明Cadre类数据成员
      string post;
};

//定义Cadre类构造函数
Cadre::Cadre()
{}
Cadre::Cadre(string g)
{
    post=g;
}
//定义Cadre类  display  函数
void Cadre::display()
{
    cout<<"post:"<<post<<endl;
}


//*****      3、Teacher_Cadre  类      *****//
class Teacher_Cadre:public Teacher,public Cadre
{
public:
        //声明Teacher_Cadre  类构造函数
        Teacher_Cadre();
        Teacher_Cadre(string a,int b,char c,string d,string e,string f,string g,float h);
        //声明Teacher_Cadre  类  show  函数
        void show();
private:
        //声明Teacher_Cadre  类数据成员
        float wages;
};

//定义Teacher_Cadre  类构造函数
Teacher_Cadre::Teacher_Cadre()
{
}
Teacher_Cadre::Teacher_Cadre(string a,int b,char c,string e,string d,string f,string g,float h):Teacher(a,b,c,e,f,g),Cadre(d)
{
    wages=h;
}

//定义Teacher_Cadre  类  show  函数
void  Teacher_Cadre::show(  )
{
        //调用Teacher类中的display函数
        Teacher::display();
        //输出职务与工资
        Cadre::display();
        cout<<"wages:"<<wages<<endl;

}

int  main(  )
{
        Teacher_Cadre  te_ca("Wang-li",50,'f',"prof.","president","135  Beijing  Road,Shanghai","(021)61234567",1534.5);
        te_ca.show(  );
        return  0;
}

【问题描述】
分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)类。要求:
(1) 在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。
(2) 在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务)。在Teacher_Cadre类中还包含数据成员wages(工资)。
(3) 对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。
(4) 在类体中声明成员函数,在类外定义成员函数。
(5) 在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
【输入形式】根据片段逻辑编程
【输出形式】见样例输出
【样例输入】代码已给
【样例输出】
name:Wang-li
age50
sex:f
title:prof.
address:135 Beijing Road,Shanghai
tel:(021)61234567
post:president
wages:1534.5

一个类继承多个类,调用顺序取决于声明顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值