习题9"/>
第十三周 项目2第11章习题9
/*
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 作 者:王静
* 完成日期:2013 年 6 月 2 日
* 版 本 号:v1.0
* 输入描述:
* 问题描述:分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求:
(1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。
(2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages( 工资)。
(3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。
(4)在类体中声明成员函数,在类外定义成员函数。
(5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
* 程序输出:
* 问题分析:
* 算法设计:略
*
*/#include <iostream>
#include <string>
using namespace std;
class Teacher//声明基类
{
public: //公用部分Teacher(string nam,int a,char s,string ad,string n,string t) //基类构造函数,与例.5相同{name=nam;age=a;sex=s;addr=ad;number=n;title=t;}void display( ) //成员函数,输出基类数据成员{cout<<"name:"<<name<<endl<<"age:"<<age<<endl<<"sex:"<<sex<<endl<<"addr:"<<addr<<endl<<"number:"<<number<<endl<<"title:"<<title<<endl;}
protected: //保护部分string name;int age;char sex;string addr;string number;string title;
};
class Caldre
{public:Caldre(string nam,int a,char s,string ad,string n,string p) //基类构造函数,与例.5相同{name=nam;age=a;sex=s;addr=ad;number=n;post=p;}protected:string name;int age;char sex;string addr;string number;string post;
};
class Teacher_Caldre: public Teacher,public Caldre //声明公用派生类Student1
{
public:
Teacher_Caldre(string nam,int a,char s,string ad,string n,string t,string p,double w):Teacher(nam,a,s,ad,n,t),Caldre(nam,a,s,ad,n,p),wages(w){}void show( ){Teacher::display();cout<<"post:"<<Caldre::post<<endl;cout<<"wages:"<<wages<<endl;}
private: //派生类的私有数据double wages;
};int main( )
{Teacher_Caldre t1("xiaotian",23,'m',"shangdong","13278493945","banzhuren","zhuli",3000);t1.show();return 0;
}
运行结果:
更多推荐
第十三周 项目2第11章习题9
发布评论