xt11-10.cpp
上传用户:liubin
上传日期:2022-06-13
资源大小:85k
文件大小:2k
源码类别:

书籍源码

开发平台:

Visual C++

  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. class Teacher                                //教师类
  5.  {public:
  6.     Teacher(int,char [],char);               //声明构造函数
  7.     void display();                          //声明输出函数
  8.   private:
  9.    int num;
  10.    char name[20];
  11.    char sex;
  12.   };
  13. Teacher::Teacher(int n,char nam[],char s)    //定义构造函数
  14.  {num=n;
  15.   strcpy(name,nam);
  16.   sex=s;
  17. }
  18. void Teacher::display()                      //定义输出函数
  19.  {cout<<"num:"<<num<<endl;
  20.   cout<<"name:"<<name<<endl;
  21.   cout<<"sex:"<<sex<<endl;
  22. }
  23. class BirthDate                               //生日类
  24.  {public:
  25.     BirthDate(int,int,int);                   //声明构造函数
  26.     void display();                           //声明输出函数
  27.     void change(int,int,int);                 //声明修改函数
  28.   private:
  29.     int year;
  30.     int month;
  31.     int day;
  32. };
  33. BirthDate::BirthDate(int y,int m,int d)       //定义构造函数
  34.  {year=y;
  35.   month=m;
  36.   day=d;
  37.  }
  38.  
  39. void BirthDate::display()                     //定义输出函数
  40.  {cout<<"birthday:"<<month<<"/"<<day<<"/"<<year<<endl;}
  41. void BirthDate::change(int y,int m,int d)     //定义修改函数
  42.  {year=y;
  43.   month=m;
  44.   day=d;
  45.  }
  46.  
  47. class Professor:public Teacher                         //教授类
  48.  {public:
  49.     Professor(int,char [],char,int,int,int,float);    //声明构造函数
  50.     void display();                                   //声明输出函数
  51.     void change(int,int,int);                         //声明修改函数
  52.    private:
  53.     float area;
  54.     BirthDate birthday;                               //定义BirthDate类的对象作为数据成员
  55.  };
  56. Professor::Professor(int n,char nam[20],char s,int y,int m,int d,float a):
  57.  Teacher(n,nam,s),birthday(y,m,d),area(a){ }          //定义构造函数
  58. void Professor::display()                             //定义输出函数
  59. {Teacher::display();
  60.  birthday.display();
  61.  cout<<"area:"<<area<<endl;
  62. }
  63. void Professor::change(int y,int m,int d)             //定义修改函数
  64.  {birthday.change(y,m,d);
  65.  }
  66. int main()
  67. {Professor prof1(3012,"Zhang",'f',1949,10,1,125.4);   //定义Professor对象prof1
  68.  cout<<endl<<"original data:"<<endl;
  69.  prof1.display();                                     //调用prof1对象的display函数
  70.  cout<<endl<<"new data:"<<endl;
  71.  prof1.change(1950,6,1);                              //调用prof1对象的change函数
  72.  prof1.display();                                     //调用prof1对象的display函数
  73.  return 0;
  74. }