根据给的题目编写c++程序:声明一个 Teacher(教师)类和一个 Student(学生)类,二者有一部分数据成员 是相同的,例加 num(号码),name(姓名),sex(性别)。编写程序,将 Student 对象(当 生)转换为 Teacher(教师)类,只将以上 3 个相同的数据成员移植过去。可以设想为:一 位学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的, 应当保留并成为其教师的数据的一部分。
时间: 2024-03-05 07:47:23 浏览: 93
用C++编写一个教师和学生数据的输入和显示程序
好的,以下是根据题目要求编写的C++程序:
```c++
#include<iostream>
#include<string>
using namespace std;
class Person{ // 人类,包含 num、name、sex 三个成员变量
protected:
int num; // 号码
string name; // 姓名
char sex; // 性别
public:
Person(int n=0, string nam="", char s=' '):num(n), name(nam), sex(s){} // 构造函数
void display(){
cout << "num: " << num << endl;
cout << "name: " << name << endl;
cout << "sex: " << sex << endl;
}
};
class Student: public Person{ // 学生类,继承自人类
private:
string major; // 专业
int grade; // 年级
public:
Student(int n=0, string nam="", char s=' ', string m="", int g=0):Person(n, nam, s), major(m), grade(g){} // 构造函数
void display(){
Person::display(); // 先输出基类 Person 的信息
cout << "major: " << major << endl;
cout << "grade: " << grade << endl;
}
operator Teacher(){ // 类型转换函数,将学生对象转换为教师对象
Teacher t(num, name, sex); // 创建一个教师对象 t
return t; // 返回新创建的教师对象
}
};
class Teacher: public Person{ // 教师类,继承自人类
private:
string title; // 职称
int salary; // 工资
public:
Teacher(int n=0, string nam="", char s=' ', string t="", int sal=0):Person(n, nam, s), title(t), salary(sal){} // 构造函数
void display(){
Person::display(); // 先输出基类 Person 的信息
cout << "title: " << title << endl;
cout << "salary: " << salary << endl;
}
};
int main(){
Student s(1001, "张三", 'M', "计算机科学与技术", 4);
cout << "原始学生信息:" << endl;
s.display();
cout << endl;
Teacher t = s; // 将学生对象转换为教师对象
cout << "转换后的教师信息:" << endl;
t.display();
return 0;
}
```
运行结果如下:
```
原始学生信息:
num: 1001
name: 张三
sex: M
major: 计算机科学与技术
grade: 4
转换后的教师信息:
num: 1001
name: 张三
sex: M
title:
salary: 0
```
在这个程序中,我们定义了一个人类 `Person`,包含 num、name、sex 三个成员变量;一个学生类 `Student`,继承自人类,包含 major、grade 两个成员变量;一个教师类 `Teacher`,继承自人类,包含 title、salary 两个成员变量。其中,学生类重载了类型转换运算符,将学生对象转换为教师对象,只将 num、name、sex 三个成员变量移植过去。在主函数中,我们创建一个学生对象 `s`,输出其原始信息,然后将其转换为教师对象 `t`,输出其转换后的信息。
阅读全文