C++第5次实验-多继承

项目填空

一、问题及代码

#include <iostream>
#include <string>
using namespace std;
class Person
{
    string name;  // 姓名
    int age;      // 年龄
public:
    Person() {}
    void setname(string na)
    {
        name=na;
    }
    void setage(int a)
    {
        age=a;
    }
    string getname()
    {
        return name;
    }
    int getage()
    {
        return age;
    }
};
class Leader: public Person    // (1)
{
    string job;     // 职务
    string dep;     // 部门
public:
    Leader() { }
    void setjob(string jb)
    {
        job=jb;
    }
    void setdep(char dp[])
    {
        dep=dp;
    }
    string getjob()
    {
        return job;
    }
    string getdep()
    {
        return dep;
    }
};
class Engineer: public Person     // (2)
{
    string major;     // 专业
    string prof;      // 职称
public:
    Engineer () { }
    void setmajor(string maj)
    {
        major=maj;
    }
    void setprof(string pf)
    {
        prof=pf;
    }
    string getmajor()
    {
        return major;
    }
    string getprof()
    {
        return prof;
    }
};
class chairman:public Leader,public Engineer
{
private:
    int c;
public:
    string name;  // 姓名
    int age;      // 年龄
    Person() {}
    void setname(string na)
    {
        name=na;
    }
    void setage(int a)
    {
        age=a;
    }
    string getname()
    {
        return name;
    }
    int getage()
    {
        return age;
    }    

 } ;// (3)
int main()
{
    chairman c;
    c.setname("张三");
    c.setage(42);
    c.setjob("处长");
    c.setdep("技术处");
    c.setmajor("轮机设计");
    c.setprof("高级工程师");
    cout <<c.getname() << "," <<c.getage()<<" 岁,担任" <<c.getdep() <<c.getjob() <<endl;
    cout <<c.getprof() << ",从事" << c.getmajor()<< "专业" << "。 " << endl;
    return 0;
} 

二、运行结果

三、心得体会

四、知识点总结

时间: 2024-10-13 19:44:44

C++第5次实验-多继承的相关文章

实验6 继承

一.实验目的与要求: 复习运算符重载并应用. 了解并掌握通过继承派生出一个新的类的方法. 二.实验过程: 完成实验6继承中A-C三道题,见:http://acm.hpu.edu.cn/contest.php?cid=1018,密码:c++06.将答题过程简单记录到实验过程中. 将答题结果写到实验结果中,并根据答题结果进行分析.反思,将其写到实验分析中,并写上实验时间. 请按以上要求认真填写实验报告.

实验六 继承定义与使用

实验六 继承定义与使用 实验时间 2018-9-28 1.实验目的与要求 (1) 理解继承的定义: (2) 掌握子类的定义要求 (3) 掌握多态性的概念及用法: (4) 掌握抽象类的定义及用途: (5) 掌握类中4个成员访问权限修饰符的用途: (6) 掌握抽象类的定义方法及用途: (7)掌握Object类的用途及常用API: (8) 掌握ArrayList类的定义方法及用法: (9) 掌握枚举类定义方法及用途. 2.实验内容和步骤 实验1: 导入第5章示例程序,测试并进行代码注释. 测试程序1:

201771010124 王海珍 《实验六 继承定义与使用》第六章实验总结

第一部分:理论知识学习部分 第五章 第五章学习内容主要分为七个模块,分别为: 1.类.超类和子类: a. 类继承的格式: class 新类名extends已有类名. b. 已有类称为:超类(superclass).基类(base class) 或父类(parent  class) 新类称作:子类(subclass).派生类(derived  class)或孩子类(child class) c.super是一个指示编译器调用超类方法的特有关键字,它不是一个对象的引用,不能将super赋给另一个对象

C++第五次实验-------多继承

一.问题及代码 [cpp] view plain copy /* * 文件名称: duojiicheng * 作 者:夏廷辉 * 完成日期: 2016 年 5 月 8 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分:无 * 输入描述: 无 * 问题描述: 多继承 * 程序输出: 略 * 问题分析: 略 * 算法设计: 略 */ #include<string> #include <iostream> using namespace std; class Teacher

C++ 实验七 继承与派生

1. 设计一个Person类,它有两个派生类Student和Employee,Employee有两个派生类Faculty和Staff. •Person类有一个string类型的名字name,string型的身份号id,string型的电话号码phonenumber, Person类构造函数的对应name的参数不能有默认形参值. •Student类有一个年级grade属性(Freshman.Sophomore.Junior或Senior),将属性值定义为常量: •Employee类有一个strin

C++实验5-多继承

一.问题及代码 /* 文件名称:教师干部类 作者 :尚超 日期 :2016.5.11 平台 :visual c++ 6.0 对任务及求解方法的描述部分: * 输入描述: * 问题描述:分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部). * 程序输出: 略 * 问题分析: 略 * 算法设计: 略 */ #include<iostream> #include<string> using namespac

【TOJ 5254】C++实验:继承中的构造函数和析构函数

描述 实现C++类Base和Derived,并编写相关构造函数和析构函数,使其能够输出样例信息. 主函数里的代码已经给出,请补充完整,提交时请勿包含已经给出的代码. int main() { Base *p = new Derived(1, 2); delete p; Base b; Derived d; return 0; } 输入 无 输出 输出样例信息. 样例输入 无 样例输出 Base Constructor 1Derived Constructor 2Derived Destructo

继承与接口课堂作业

(1)动手实验:继承条件下的构造方法调用 运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大! 结论:通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句.   Super调用基类构造方法的使用: 1.它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数). 2.调用super()必须写在

第43课 继承的概念及意义

1. 类之间的组合关系 (1)组合关系:整体与部分的关系 [实例分析]组合关系的描述 #include <iostream> using namespace std; //内存类 class Memory { public: Memory() { cout << "Memory()" << endl; } ~Memory() { cout << "~Memory()" << endl; } }; //硬盘类