定义一个teacher(教师)类和一个student(学生)类,二者有一份数据成员是相同的,例如num,name,sex。编写程序,将一个student对象(学生)转换为teacher(教师)类,只将以上3个相同的数据成员移植过去。可以设想为:一个学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的,应当保留并成为其教师的数据的一部分。
#include <iostream>
#include <cstring>
using namespace std;
class student{
public:
student(int,char[],char);
int get_num(){return num;}
char *get_name(){return name;}
char get_sex(){return sex;}
private:
int num;
char name[20];
char sex;
};
student::student(int n,char nam[],char s){
num=n;
strcpy(name,nam);
sex=s;
}
class teacher{
public:
teacher(int,char[],char,float);
teacher(student&);
void display();
private:
int num;
char name[20];
char sex;
float pay;
};
teacher::teacher(int n,char nam[],char s,float p){
num=n;
strcpy(name,nam);
sex=s;
pay=p;
}
teacher::teacher(student &s){
num=s.get_num();
strcpy(name,s.get_name());
sex=s.get_sex();
pay=1500;
}
void teacher::display(){
cout<<"编号为:"<<num<<endl;
cout<<"姓名为:"<<name<<endl;
cout<<"性别为:"<<sex<<endl;
cout<<"工资为:"<<pay<<endl;
}
int main(){
student st1(12,"ldf",'m');//注意性别是char型单个字母,用''不能用" "
teacher te1(54,"ws",'w',6000);
teacher te2=teacher(st1);
cout<<"第一个教师状况:"<<endl;
te1.display();
cout<<"第二个教师状况:"<<endl;
te2.display();
return 0;
}