要求:做一个基类Data,数据成员name,派生类教师teacher和学生student继承Data的name数据成员,此外教师新增薪水sal数据成员,学生新增学号id数据成员,派生类研究生Postgard继承学生,新增系别dn数据成员,派生类教师研究生Tpost继承研究生和教师,新增数据成员

在所有类里都加入函数成员Point()用来打印所有信息

代码详细注解:

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<string>
using namespace std;class Data {//基类
public:Data(string name):name(name) {}//数据成员初始化string Name() { return name; }//私有成员对外部接口void Print() {cout << "name = " << Name() << endl;//外部接口作为打印值,这里也可以用name私有成员}
private:string name;
};
class Teacher :virtual public Data{//虚基类,名字是所有类里公有的,所以只需要继承一份
public://子类的构造函数,给出所有基本信息。Teacher(string name, float sal = 0) :Data(name),sal(sal) {}//虚基类若不是默认函数,则在继承的子类里的构造函数也要给出基类的初始化float Sal() { return sal; }void Print() {cout << " name = " << Name() << " sal = " << Sal() << endl;}
private:float sal;
};
class Student :virtual public Data{
public://同teacher类的注释Student(string name, int id = 0) :Data(name),id(id) {}int Id() { return id; }void Print() {cout << " name = " << Name() << " id = " << Id() << endl;}
private:int id;
};
class Postgrad :virtual public Student {
public://构造函数给出子类继承父类和自身本身的信息Postgrad(string name, int id, string dn) :Data(name), Student(name, id),dn(dn) {}string Dn() { return dn; }void Print() {cout << " name = " << Name() << " dn = " << Dn() << endl;}
private:string dn;
};
class Tpost :virtual public Teacher, virtual public Postgrad {
public:Tpost(string name, int id, string dn, float sal) :Data(name), Postgrad(name,id,dn), Teacher(name, sal) ,Student(name,id){}void Print() {//打印继承的父类函数,需要给出命名空间来限定是哪一个打印函数,//但这里会造成名字打印两次的尴尬,不知道怎么处理Postgrad::Print();Teacher::Print();}
};
void test() {/*Data* sp;sp = new Teacher ("李华", 60000);//不可以这样使用new,需要好好去复习。sp->Print();delete sp;sp = new Tpost("张三", 2021463030603,"计算机", 50000);sp->Print();delete sp;*/Tpost t1("zhangsan", 2021463030603, "jisuanji", 50000);t1.Print();Teacher t2("lisi", 60000);t2.Print();
}
int main() {test();
}

C++多重继承师生类复盘相关推荐

  1. 多重继承的构造函数和析构函数

    多重继承的构造函数和析构函数的执行顺序: //此处不做注释和说明了,看程序能读懂的 #include <iostream> using namespace std; class base1 ...

  2. Python学习笔记整理(十六)类的设计

    如何使用类来对有用的对象进行建模? 一.Python和OOP Python和OOP实现可以概括为三个概念. 继承     继承是基于Python中属性查找(在X.name表达式中) 多态     在X ...

  3. python顺序结构有一个入口_高楼万丈平地起,基础要打牢!Python获取类的层次结构和继承顺序...

    上一篇内容我们详细了解了Python使用inspect模块获取一个模块.类.实例.函数的信息及帮助文档的方法(参见新手入门到进阶,你不可不知的模块,用Python获取对象的详细信息). 前情提要 今天 ...

  4. python类汇总_Python 类总结

    Python可以继承多个父类,多重继承. 类支持多个对象的产生,命名空间的继承,运算符重载 1).类产生多个实例对象 Python OOP模型中的两种对象:类对象和实例对象. 类对象提供默认的行为,是 ...

  5. JAVA类的继承、覆写和final关键字

    extends不用多说,是来继承的关键字,但它有几个要点: java不允许多重继承(一个类只能继承一个父类,不能继承多个父类) 派生类会继承基类所有属性和方法,但不能直接访问基类的private私有属 ...

  6. python 构造函数继承_Python多重继承的异构构造器

    在Python里面,如果你使用上Qt,SQLAlchemy,Twisted之类各种大型类库时候,有时候多重继承Multiple Inheritance是个简单的解决方法,但是多重继承的复杂性总容易造成 ...

  7. python一般的类有三部分组成_Python学习笔记总结(三)类

    一.类简单介绍 1.介绍 类是Python面向对象程序设计(OOP)的主要工具,类建立使用class语句,通过class定义的对象. 类和模块的差异,类是语句,模块是文件. 类和实例 实例:代表程序领 ...

  8. Javascript框架 - ExtJs - 类

    类(ExtJs Class) preparation! 我用的是ext-4.2,解压后会得到以下文件 学习要用到的文件很少,现在保留以下文件和整个文件夹,然后删除其它文件并保持目录结构.本页面底部有提 ...

  9. [转载] 当心掉进Python多重继承里的坑

    参考链接: Python多重继承 关于类的知识点里面,有一块是关于多重继承,跟其他主流语言一样,Python也支持多重继承,多重继承虽然有一些好处,但是坑很多,我们今天就来聊一聊Python多重继承里 ...

最新文章

  1. 中职计算机php学啥,计算机专业都学什么主要课程有什么_中职中专网
  2. MSTAR SETBOX 常用API
  3. 在一个公司死磕了5-10年的人,最后都怎么样了?
  4. 微信小程序中换行,空格(多个空格)写法
  5. 数据结构与算法分析资源总结
  6. php的浏览历史怎么做,php浏览历史记录的方法
  7. 实现连麦_直播课程系统如何实现互动连麦效果?
  8. 90亿拿下德邦 京东物流加速“造血”
  9. python怎么换行继续写脚本_python怎么换行继续写脚本
  10. iOS开发之解析XML格式数据
  11. OpenERP工作流不同角色看属于自己审批的方法
  12. Python安装graphics库
  13. MS509Team----------------Cknife
  14. Spring核心包介绍
  15. 关于滤镜的使用,使图片默认为全灰色
  16. win10下的VMware还原网络设置,无法创建VMware网络适配器解决办法
  17. Linux(进程概念详解)
  18. VMware vCenter Server 8.0U1 发布 - 集中式管理 vSphere 环境
  19. 【定量分析、量化金融与统计学】多元回归模型与回归推理
  20. OpenCL 安装ocl-icd

热门文章

  1. C++ Sets MultiSets
  2. 2022,你的团队距离持续部署还有多远?
  3. io_uring vs epoll ,谁在网络编程领域更胜一筹?
  4. 【人工智能】AI如何把招人效率提高四成
  5. 做一个高一致性、高性能的Flutter动态渲染,真的很难么?
  6. 当S8遇上边缘计算:谈阿里云ENS对直播业务场景的支撑
  7. 仅使用NumPy完成卷积神经网络CNN的搭建(附Python代码)
  8. 搜索引擎背后的原理和中文日志检索
  9. Aruba与中国电信国际有限公司达成战略合作 助力中国企业扬帆出海
  10. 中国电信天翼云进入4.0阶段,打造一朵无处不在的分布式云