发布时间:2019-07-29 16:19:20
分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求如下:
1. 在两个基类中都包含姓名、年龄、性别、电话等数据成员。
2. 在Teacher(教师)类中还包含数据成员title(职称),在Cadre(干部)类还包含数据成员post(职务),在Teacher_Cadre(教师兼干部)类中还包含数据成员wage(工资)。
3. 对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。
4. 在类体中声明成员函数,在类外定义成员函数。
5. 在派生类Teacher_Cadre(教师兼干部)类的成员函数show中调用Teacher(教师)类的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务和工资。
输入输出示例:
姓名:Wang-li
年龄:50
性别:f
职称:prof.
地址:135 Beijing Road,Shanghai
电话:(021)61234567
职务:president
工资:1534.5
这个按教程中类的定义及继承写下,没难度的(就是有点工作量)
以下是类似的参考,若能理解 ,改下就可以
#include<iostream>
using namespace std;
class Preson
{
public:
void setpramework(int age,string name,int tall);
void display();
~Preson(){cout<<"I am a good student!"<<endl;}
private:
int m_age;
string m_name;
int m_tall;
};
void Preson::setpramework(int age,string name,int tall){m_age=age,m_name=name,m_tall=tall;}
void Preson::display(){cout<<"年龄:"<<m_age<<endl<<"姓名:"<<m_name<<endl<<"身高:"<<m_tall<<endl;
}
class Student: virtual public Preson
{
public:
void student(int ID,int grade,int score);
void display();
~Student(){cout<<"I am ::"<<endl;}
private:
int m_ID;
int m_grade;
int m_score;
};
void Student::student(int ID,int grade,int score){m_ID=ID,m_grade=grade,m_score=score;}
void Student::display(){cout<<"学号:"<<m_ID<<endl<<"年级:"<<m_grade<<endl<<"成绩:"<<m_score<<endl;}
class Teacher:virtual public Preson
{
public:
void teacher(int id,string job,string mclass,int perior);
void display();
~Teacher(){cout<<"Teacher::"<<endl;}
private:
int m_id;
string m_job;
string m_class;
int m_perior;
};
void Teacher::teacher(int id,string job,string mclass,int perior){m_id=id,m_job=job,m_class=mclass,m_perior=perior;}
void Teacher::display(){cout<<"工号:"<<m_id<<endl<<"职称:"<<m_job<<endl<<"课程:"<<m_class<<endl<<"学时:"<<m_perior<<endl;}
class TA:public Student,public Teacher
{
public:
void wages(int wages);
void display();
~TA(){cout<<"Very money!"<<endl;}
//void display(){Preson::setpramework(),Student::student(),Teacher::teacher();}
private:
int m_wages;
};
void TA::wages(int wages){m_wages=wages;}
void TA::display(){cout<<"工资:"<<m_wages<<endl,Preson::display(),Student::display(),Teacher::display();}
int main()
{
TA ta;
ta.setpramework(18,"lihua",180);
ta.student(10086,9,100);
ta.teacher(110,"jisuanji","wanggong",12);
ta.wages(8000);
ta.display();
ta.display();
ta.display();
return 0;
}