Description
已知类如下:
(1) BirthDate(生日类) 含有:year,month,day 等数据成员
(2) Teacher(教师类)含有:num,name,sex 等数据成员
(3) Professor(教授类)含有:教师类和生日类的数据成员
要求:
(1)通过对Teacher和BirthDate使用继承和组合的方式设计Professor
(2)定义Professor类对象prof,并给出所有数据的初值
(3)修改prof的生日数据
(4)输出prof的全部最新数据
Input
num,name,sex,year,month,day 和修改后的year,month,day
Output
num,name,sex,year,month,day
Sample Input
2001 Huang m 1970 1 1 1994 5 26
Sample Output
num:2001 name:Huang sex:m birthday:1994/5/26
#include <iostream> #include <string> using namespace std; class BirthDate { public: BirthDate(int,int,int); void display(); void setbirthday(int,int,int); private: int year; int month; int day; }; class Teacher { public: Teacher(int,string,char); void display(); private: int num; string name; char sex; }; class Professor:public Teacher { public: Professor(int,string,char,BirthDate); void display(); void setbirthday(int,int,int); private: BirthDate birthday; }; //完善生日基类 BirthDate::BirthDate(int y,int m,int d):year(y),month(m),day(d){} void BirthDate::display() { cout<<year<<'/'<<month<<'/'<<day<<endl; } void BirthDate::setbirthday(int y,int m,int d) { year=y; month=m; day=d; } //完善教师基类 Teacher ::Teacher(int n,string nam,char sex):num(n),name(nam),sex(sex){} void Teacher::display() { cout<<"num:"<<num<<endl<<"name:"<<name<<endl<<"sex:"<<sex<<endl<<"birthday:";//最后应该怎样输出呢 } //完善教授类 Professor::Professor(int n ,string nam,char sex, BirthDate B):Teacher(n,nam,sex),birthday(B){} void Professor::display() { Teacher::display(); birthday.display();//是这样调用的,是内部函数 } void Professor::setbirthday(int y,int m, int d) { birthday.setbirthday(y,m,d); } int main() { int num; string name; char sex; int year,month,day; cin>>num>>name>>sex; cin>>year>>month>>day; Professor prof(num,name,sex,BirthDate(year,month,day)); cin>>year>>month>>day; prof.setbirthday(year,month,day); prof.display(); return 0; }