第十二周任务二

来源:互联网 发布:人工智能的应用新闻 编辑:程序博客网 时间:2024/05/27 09:49

源程序:

/*(文件注释头部开始) *程序的版权和版本声明部分 *Copyright (c) 2011,烟台大学计算机学院学生 *All rights reserved. *文件名称:多重继承*作    者:2011级计114-3刘杨 *完成日期:2011年5月7号 *版本号:vc* 对任务及求解方法的描述部分 * 输入描术:* 问题描述:(教材P394习题9)分别定义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,int num,string tit){name = nam;age = a;sex = s;addr = ad;number = num;title  = tit;}~Teacher(){}void display();protected:string name;int age;char sex;string addr;int number;string title;};class Cadre{public:Cadre(string nam,int a, char s,string ad,int num,string pos){name = nam;age = a;sex = s;addr = ad;number = num;post  = pos;}~Cadre(){}protected:string name;int age;char sex;string addr;int number;string post;};class Teacher_Cadre:public Teacher,public Cadre{public:Teacher_Cadre(string nam,int a, char s,string ad,int num,string tit,string pos,float wag):  Teacher(nam, a, s, ad, num,tit),Cadre(nam, a, s, ad, num, pos),wages(wag){}  ~Teacher_Cadre(){}  void show();protected:float wages;};void Teacher::display(){cout << "name  " << name << endl;cout << "age  " << age << endl;cout << "sex  " << sex << endl;cout << "title  " << title << endl;cout << "addr  " << addr << endl;cout << "num  " << number << endl;}void Teacher_Cadre::show(){Teacher::display();//在这里要用到域限定符,说明说调用的Techer类中的成员函数cout << "post  " << Cadre::post << endl;cout << "wages  " << wages << endl;}int main( ){Teacher_Cadre tc("liuyang",24,'f',"shandong",123456,"teacher","graduate",5555);tc.show();//在类外不能访问protected和private数据成员及成员函数system("pause");return 0;}


实验结果:

name  liuyang
age  24
sex  f
title  teacher
addr  shandong
num  123456
post  graduate
wages  5555
请按任意键继续. . .