分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)

By | 10月02日
Advertisement
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作    者:          苗影
* 完成日期:       2012  年  5     月   7     日
* 版 本 号:          

* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#include<iostream>  

#include<string>  

using namespace std;  

class Teacher
{
public:
    Teacher(string nam, int a, char s, string tit, string ad, string t) : name(nam), age(a), sex(s), title(tit), addr(ad), tel(t)
    void display();
protected:
    string name;
    int age;
    char sex;
    string title;
    string addr;
    string tel;
};  

void Teacher :: display()
{
    cout << "name:" << name << endl;
    cout << "age:" << age << endl;
    cout << "sex:" << sex << endl;
    cout << "title:" << title << endl;
    cout << "addr:" << addr << endl;
    cout << "tel:" << tel << endl;
}  

class Cadre
{
public:
    Cadre(string nam, int a, char s, string p, string ad, string t) : name(nam), age(a), sex(s), post(p), addr(ad), tel(t){}
    void display();
protected:
    string name;
    int age;
    char sex;
    string post;
    string addr;
    string tel;
};  

void Cadre :: display()
{
    cout << "name:" << name << endl;
    cout << "age:" << age << endl;
    cout << "sex:" << sex << endl;
    cout << "post:" << post << endl;
    cout << "addr:" << addr << endl;
    cout << "tel:" << tel << endl;
}  

class Teacher_Cadre : public Teacher, public Cadre
{
public:
    Teacher_Cadre(string nam, int a, char s, string tit, string p, string ad, string t, float w) : Teacher(nam, a, s, tit, ad, t), Cadre(nam, a, s, p, ad, t), wages(w){}  //构造函数定义
    void show();
private:
    float wages;
};  

void Teacher_Cadre :: show()
{
    Teacher :: display();
 //指定作用域teacher范围
 cout << "post:" << Cadre :: post << endl; //指定作用域Cadre类 cout << "wages:" << wages << endl; } int main() { Teacher_Cadre Teacher_Cadre1("xiaoli", 28, 'f', "prof", "president", "135Beijing Road,Shanghai", "(021)61234567", 4444);
 Teacher_Cadre1.show(); system("pause"); return 0; }

分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)
感言:放假回来忘了好多

Similar Posts:

  • 12-2 教师兼干部

    /* * 作 者: 霍雨佳 * 完成日期:2014 年5月13日 * 版 本 号:v1.0 * 问题描述:分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部). * 样例输入: * 样例输出: * 项目要求: *(1)在两个基类中都包含姓名.年龄.性别.地址.电话等数据成员. *(2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中

  • )两个头文件相互包含(类超前引用)

    QT4(C++)两个头文件相互包含(类超前引用) (2011-04-04 14:54:03) 转载▼ 标签: it 分类: C/C 基础 1.C++中的类相互包含(QT4) 所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数. 一般情况下,C/C++要求所有的类型必须在使用前被定义,但是在一些特殊情况下,这种要求无法满足,例如,在类time_outDialog中保留了对象指针,该对象用于显示/修改一些信息.为了实现对话框"应用"按钮,把对话框做的修改立刻更新到time_out

  • C++第11周(春)项目3 - 点类派生直线类

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3 - 点类派生直线类]定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { pub

  • 第十一周项目三-点类派生直线类

    [项目3 - 点类派生直线类]定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0),y(0) {}; Point(double x0, double y0):x(x0), y(y0) {}; void

  • 从零开始学C++之模板(二):类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)

    一.类模板 类模板:将类定义中的数据类型参数化 类模板实际上是函数模板的推广,可以用相同的类模板来组建任意类型的对象集合 (一).类模板的定义 template <类型形参表> class <类名> { //类说明体 }: template <类型形参表> <返回类型> <类名> <类型名表>::<成员函数1>(形参表) { //成员函数定义体 } template <类型形参表> <返回类型> &

  • 两个很常用的类CArray,CList

    开始用过CArray这个非常好用的类(如何使用看这篇文章MFC数组类CArray的使用的操作详解 ).后来又发现CList这个类与它有些相似,于是Google了一下.在这里汇总一些比较好理解的说法去熟悉他们.以便在以后的编程中应用自如: TitleArray采用队列方式存储数据,因而其内部数据元素是以物理方式顺序排列的,所以检索.顺序执行GetAt()等函数的速度是相当快的.但是由于每次队列长度变化后,数据都要重新申请内存.拷贝内存.释放内存,因而Insert/Add/RemoveAt()的速度

  • 《教师教学究竟靠什么--谈新课程的教学观》之实施新课程要求教师树立什么样的教学观

    <教师教学究竟靠什么--谈新课程的教学观>之 实施新课程要求教师树立什么样的教学观 文兴小学 袁德普 观念是行动的灵魂,教学观念对教学起着重要的指导和统率作用:一切先进的教学改革都是从新的教学观念中生发出来的,一切教学改革的困难都来自旧的教学观念的束缚,一切教学改革的尝试创新都是新旧教学观念斗争的结果.那么,广大教师作用实施新课程.深化教学改革的主力军.实践者,究竟应该树立什么样的教学观才能适应实施新课程的需要呢?根据新一轮课改的宗旨和全面实施学科素质教育的要求,笔者认为,教师必须树立以下新的

  • 通过用AcDbObject或者AcDbEntity派生的类,无法用代理直接取代

    今天遇到了AcDbObject或者AcDbEntity派生的类,无法用代理直接取代 从理论上或者AutoDesk的相关资料是可以的 最后经过实践,终于找到相应的原因是在相应的dwgInFile和dwgOutFile中没有对基类的读写文件进行调用 即没有调用相应的AcDbObject::dwgInFile()或AcDbEntity::dwgInFile 导致了此类问题的诞生,特此标识,以表记忆! 版权声明:本文为博主原创文章,未经博主允许不得转载.

  • 第十一周项目3-点类派生直线类

    定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. /* *Copyright (c) 2015,烟台大学计算机学院 *All gight reserved. *文件名称:Demo.cpp *作者:邵帅 *完成时间:2015年05月25日 *版本号:v1.0 */ #include<iostream> #include<Cmath> using namespace std; class Point

  • 第十一周上机项目3 点类派生直线类

    定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0),y(0) {}; Point(double x0, double y0):x(x0), y(y0) {}; void PrintPoint(); /

Tags: