多重继承的应用《教师类和干部类》
来源:互联网 发布:python游戏开发百度云 编辑:程序博客网 时间:2024/06/02 08:54
在上一篇博客中介绍了多重继承,虽然多重继承在实际的运用中用的不多,但是还是通过几个例子说明多重继承
实例:教师类和干部类派生出教师干部类
分别定义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 Name, int Age, char Sex, string Addr, int Tel, string Title); void display();//显示教师信息protected: string name;//姓名 int age;//年龄 char sex;//性别 string addr;//地址 int tel;//电话 string title;//职称 };//构造函数Teacher::Teacher(string Name, int Age, char Sex, string Addr, int Tel, string Title): name(Name), age(Age), sex(Sex), addr(Addr), tel(Tel), title(Title){}void Teacher::display()//显示教师信息{ cout<<"姓名:"<<name<<endl; cout<<"年龄:"<<age<<endl; cout<<"性别:"<<sex<<endl; cout<<"地址"<<addr<<endl; cout<<"电话:"<<tel<<endl; cout<<"职称:"<<title<<endl;}class Cadre//干部类{public: //构造函数 Cadre(string Name, int Age, char Sex, string Addr, int Tel, string Pos); void show1();//显示干部信息protected: string name;//姓名 int age;//年龄 char sex;//性别 string addr;//地址 int tel;//电话 string post;//职务};//构造函数Cadre::Cadre(string Name, int Age, char Sex, string Addr, int Tel, string Post): name(Name), age(Age), sex(Sex), addr(Addr), tel(Tel), post(Post){}//显示干部信息void Cadre::show1(){ cout<<"姓名:"<<name<<endl; cout<<"年龄:"<<age<<endl; cout<<"性别:"<<sex<<endl; cout<<"地址"<<addr<<endl; cout<<"电话:"<<tel<<endl; cout<<"职务:"<<post<<endl;}//Teacher类和Cadre类派生出新的类Teacher_Cadre类class Teacher_Cadre : public Teacher, public Cadre{public: //构造函数 Teacher_Cadre(string Name, int Age, char Sex, string Addr, int Tel, string Title, string Post, double Wages); void show();//显示信息protected: double wages;//工资};//构造函数Teacher_Cadre::Teacher_Cadre(string Name, int Age, char Sex, string Addr, int Tel, string Title, string Post, double Wages):Teacher(Name, Age, Sex, Addr, Tel, Title), Cadre(Name, Age, Sex, Addr, Tel, Post), wages(Wages){}//显示Teacher_Cadre类中的信息void Teacher_Cadre::show(){ display();//调用Teacher类中的display()函数显示信息 cout<<"职务:"<<Cadre::post<<endl;//输出职务 cout<<"工资:"<<wages<<endl;//输出工资}void main(){ Teacher_Cadre T_C("王丽", 50, 'f', "135 Beijing Road,Shanghai", 02161234567, "president", "prof.", 1534.5); T_C.show(); system("pause");}
执行结果
0 0
- 多重继承的应用《教师类和干部类》
- 多重继承教师类和干部类
- 多重继承教师与干部类
- C++第13周项目2 - 多重继承教师类和干部类
- 第十三周项目二----多重继承教师类和干部类
- 十三周项目二多重继承教师类和干部类
- 分别定义教师类和干部类 采用多重继承方式 第五章第九题
- 第十三周项目二—多重继承教师干部类
- 第十二周项目一 教师兼干部类(多重继承)
- C++走向远洋——46(教师兼干部类、多重继承、派生)
- 第11周项目4-教师兼干部类 (多重继承方式)
- 第十周项目四 类的继承教师兼干部类
- oj教师类,干部类
- 2013级C++第12周(春)项目——成员的访问属性、多重继承 【项目2 - 教师兼干部类】
- 第12周-多继承、虚基类,继承和组合-项目1-教师兼干部类
- 教师兼干部类
- 教师加干部类
- 教师兼干部类
- 在MyEclipse中生成项目的UML类图
- wampserver多站点配置
- 0xCCCCCCCCC的内存不能访问的原因
- css clear:left 的本质
- 移动Web——CSS为Retina屏幕替换图片
- 多重继承的应用《教师类和干部类》
- IP层实现1--初始化
- 39个让你受益的HTML5教程
- CyberDuck是一个很棒的 FTP SFTP图形化工具
- ①-- > java中常用的方法
- 网页游戏常见外挂原理及防御
- C++学习笔记25 类模板的特化
- C语言堆栈入门——堆和栈的区别
- VS2012未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包