习题10.3 分别定义Teacher类和Cadre类,采用多重继承方式由这两个类派生出新类Teacher_Cadre类。

简介: 习题10.3 分别定义Teacher类和Cadre类,采用多重继承方式由这两个类派生出新类Teacher_Cadre类。

c语言程序设计实验报告


一、实验目的:

       1、掌握C语言的数据类型和变量的声明。

       2、掌握不同类型数据之间赋值的规律。

       3、掌握C语言的运算符和表达式的使用。

       4、熟悉C程序的编辑、编译、连接和运行的过程。


二、实验内容:

由这两个类派生出新类Teacher_Cadre(教师兼干部)类。要求:

① 在两个基类中都包含姓名、年龄、性别等数据成员。


② 在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务)。在Teacher_Cadre类中还包含数据成员wages(工资)。


③ 对两个基类中的姓名、年龄、性别等数据成员用相同的名字,在引用这些数据成员时,指定作用域。


④ 在类体中声明成员函数,在类外定义成员函数。


⑤ 在派生类Teacher_Carde的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别,然后再用cout语句输出职务和工资。


三、实验步骤:

       在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务)。在Teacher_Cadre类中还包含数据成员wages(工资)。

#include <iostream>
#include<string>
using namespace std;
class Teacher
{
public:
  Teacher(string n, int a, char s,string t)
  {
  name=n;
  age=a;
  sex=s;
  title=t;
  }
  void display()
  {
    cout<<"name:"<<name<<endl;
    cout<<"age:"<<age<<endl;
    cout<<"sex:"<<sex<<endl;
    cout<<"title:"<<title<<endl;
  }
protected:
  string name;
  int age;
  char sex;
  string title;
};

      对两个基类中的姓名、年龄、性别等数据成员用相同的名字,在引用这些数据成员时,指定作用域。

class Cadre
{
public:
  Cadre(string n, int a, char s,string p)
  {
    name=n;
    age=a;
    sex=s;
    post=p;
  }
  void display1()
  {
    cout<<"name:"<<name<<endl;
    cout<<"age:"<<age<<endl;
    cout<<"sex:"<<sex<<endl;
    cout<<"post:"<<post<<endl;
  }
protected:
  string name;
  int age;
  char sex;
  string post;
};

        在派生类Teacher_Carde的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别,然后再用cout语句输出职务和工资。

class Teacher_Cadre:public Teacher,public Cadre
{
public:
  Teacher_Cadre(string n, int a, char s,string t,string p,float w):
    Teacher(n,a,s,t),Cadre(n,a,s,p),wages(w){}
  void show()
  {display();
  cout<<"post:"<<post<<endl;
  cout<<"wages:"<<wages<<endl;
  }
private:
  float wages;
};
int main()
{
  Teacher_Cadre teacher1("zhangsan",21,'n',"professor", "assitant",100);
  teacher1.show();
  return 0;
}

运行结果

4.png

cin和cout是c++中的标准输入输出流

一、cin

 cin的一般用法:


 cin>>变量a>>变量b>>变量c;


       cin会自动辨别变量的类型,如a可以是char,b可以是int,c可以是float。


       接收字符串时,遇到空格,tab键和换行符都会结束接收。


       cin.getline()可以接收空格,cin.getline(char*,int,char),内有三个参数,第一个表示要接收的字符串,第二个表示接收字符个数,第三个表示结束字符。当第三个省略时默认结束字符为'\0'。


二、cout

       cout的一般用法:

  cout<<表达式1<<表达式2<<表达式3;

       如要换行可使用 cout<<endl;语句。

       和cin一样,cout会自动检测表达式类型输出。

相关文章
|
4月前
|
数据安全/隐私保护
类与对象\类的定义
类与对象\类的定义
22 0
|
4月前
|
Java 编译器 数据处理
JavaSE——面相对象高级一(4/4)-继承相关的注意事项:权限修饰符、单继承、Object类、方法重写、子类访问成员的特点......
JavaSE——面相对象高级一(4/4)-继承相关的注意事项:权限修饰符、单继承、Object类、方法重写、子类访问成员的特点......
54 0
|
5月前
|
存储 编译器 程序员
【C++】类和对象①(什么是面向对象 | 类的定义 | 类的访问限定符及封装 | 类的作用域和实例化 | 类对象的存储方式 | this指针)
【C++】类和对象①(什么是面向对象 | 类的定义 | 类的访问限定符及封装 | 类的作用域和实例化 | 类对象的存储方式 | this指针)
|
5月前
|
存储 编译器 C语言
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
2.【类的组合(在一个类中定义一个类)】
2.【类的组合(在一个类中定义一个类)】
43 0
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
|
Java
Java面向对象(5)--类的成员构造器(构造方法)
Java面向对象(5)--类的成员构造器(构造方法)
113 0
C++学习——继承与派生
C++学习——继承与派生
141 0
C++学习——继承与派生