第十六週(OJ 練習一 6)——繼承與組合。
阿新 • • 發佈:2019-01-08
/* 02.02.*煙臺大學計算機學院學生 03.03.*All right reserved. 04.04.*檔名稱*煙臺大學計算機學院學生 05.05.*All right reserved. 06.06.*檔名稱:繼承與組合 07.07.*作者:王洪海 08.08.*完成日期:2013年6月12日 09.09.*版本號:v1.0 10.10.*對任務及求解方法的描述部分:繼承與組合 11.11.*我的程式: 12.12.*/ #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; }; /* C++程式碼 */ BirthDate::BirthDate(int y,int m,int d): year(y),month(m),day(d){} void BirthDate::display() { cout<<"birthday:"<<year<<"/"<<month<<"/"<<day<<endl; } void BirthDate::setbirthday(int y,int m,int d) { year=y; month=m; day=d; } Teacher::Teacher(int n,string na,char s): num(n),name(na),sex(s){} void Teacher::display() { cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; } Professor::Professor(int n,string na,char s,BirthDate m): //此處比較重要!!! Teacher(n,na,s),birthday(m){} //類作為資料成員時,要用物件進行建構函式的賦值!!! 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; }
執行結果,如下圖: