谭浩强C++课后习题37——学生类转换为教师类(转换构造函数)

谭浩强C++课后习题37——学生类转换为教师类(转换构造函数)

题目描述:定义一个Teacher(教师)类和一个Student(学生)类,二者有一部分数据成员是相同的,例如num(号码),name(姓名),sex(性别)。编写程序,将一个Student对象(学生)转换为Teacher(教师)类,只将以上3个相同的数据成员移植过去。可以设想为:一位学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的,应保留并成为其教师数据的一部分。
Student类只增加一个数据成员score(成绩),Teacher类只增加一个数据成员pay(工资)。按题目要求编程。

#include<iostream>
using namespace std;
class Student {
private:
	int num;
	string name;
	string sex;
	double score;
public:
	Student(int n, string na, string s, double sc) :num(n), name(na), sex(s), score(sc) {}
	int getNum() { return num; }
	string getName() { return name; }
	string getSex() { return sex; }
	void display() {
		cout << "学号:" << num << endl;
		cout << "姓名:" << name << endl;
		cout << "性别:" << sex << endl;
		cout << "分数:" << score << endl;
	}
};
class Teacher {
private:
	int num;
	string name;
	string sex;
	double pay;
public:
	Teacher(int n, string na, string s, double p) :num(n), name(na), sex(s), pay(p) {}
	Teacher(Student& s) { 
		num = s.getNum(); 
		name = s.getName();
		sex = s.getSex();
		pay = 1500;
	}
	void display() {
		cout << "学号:" << num << endl;
		cout << "姓名:" << name << endl;
		cout << "性别:" << sex << endl;
		cout << "工资:" << pay << endl;
	}
};
int main() {
	Student s(1, "aaa", "男", 89);
	cout << "学生信息:" << endl;
	s.display();
	cout << endl;
	cout << "转为教师:" << endl;
	Teacher(s).display();
	cout << endl;
	return 0;
}

运行测试结果:
在这里插入图片描述

发布了37 篇原创文章 · 获赞 37 · 访问量 691

猜你喜欢

转载自blog.csdn.net/weixin_45295612/article/details/105325546