谭浩强c++第十章题7 定义一个teacher(教师)类和一个student(学生)类,二者有一份数据成员是相同的,例如num,name,sex。

定义一个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;

}

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值