第五章第十题

#include <iostream>
#include <cstring>
using namespace std;
class Teacher                                //教师类
 {public:
  Teacher(int,char [],char);               //声明构造函数
    void display();                          //声明输出函数
  private:
   int num;
   char name[20];
   char sex;
  };

Teacher::Teacher(int n,char nam[],char s)    //定义构造函数
 {num=n;
  strcpy(name,nam);
  sex=s;
}

void Teacher::display()                      //定义输出函数
 {cout<<"num:"<<num<<endl;
  cout<<"name:"<<name<<endl;
  cout<<"sex:"<<sex<<endl;
}

class BirthDate                               //生日类
 {public:
    BirthDate(int,int,int);                   //声明构造函数
    void display();                           //声明输出函数
    void change(int,int,int);                 //声明修改函数
  private:
    int year;
    int month;
    int day;
};

BirthDate::BirthDate(int y,int m,int d)       //定义构造函数
 {year=y;
  month=m;
  day=d;
 }

void BirthDate::display()                     //定义输出函数
 {cout<<"birthday:"<<month<<"/"<<day<<"/"<<year<<endl;}

void BirthDate::change(int y,int m,int d)     //定义修改函数
 {year=y;
  month=m;
  day=d;
 }

class Professor:public Teacher                         //教授类
 {public:
    Professor(int,char [],char,int,int,int,float);    //声明构造函数
    void display();                                   //声明输出函数
    void change(int,int,int);                         //声明修改函数
   private:
    float area;
    BirthDate birthday;                               //定义BirthDate类的对象作为数据成员
 };

Professor::Professor(int n,char nam[20],char s,int y,int m,int d,float a):
 Teacher(n,nam,s),birthday(y,m,d),area(a){ }          //定义构造函数

void Professor::display()                             //定义输出函数
{Teacher::display();
 birthday.display();
 cout<<"area:"<<area<<endl;
}

void Professor::change(int y,int m,int d)             //定义修改函数
 {birthday.change(y,m,d);
 }

int main()
{Professor prof1(3022,"LIU",'m',1949,1,1,125.4);   //定义Professor对象prof1
 cout<<endl<<"original data:"<<endl;
 prof1.display();                                     //调用prof1对象的display函数
 cout<<endl<<"new data:"<<endl;
 prof1.change(1955,3,2);                              //调用prof1对象的change函数
 prof1.display();                                     //调用prof1对象的display函数
 return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值