第十一週專案4——教師兼幹部類
阿新 • • 發佈:2019-02-03
問題及程式碼:
/* * Copyright (c) 2016,煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:main.cpp * 作 者:趙志君 * 完成日期:2016年5月15日 * 版 本 號:v1.0 * * 問題描述:分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師兼幹部)。 * 要求: * (1)在兩個基類中都包含姓名、年齡、性別、地址、電話等資料成員。 * (2)在Teacher類中還包含資料成員title(職稱),在Cadre類中還包含資料成員post(職務),在Teacher_Cadre類中還包含資料成員wages(工資)。 * (3)對兩個基類中的姓名、年齡、性別、地址、電話等資料成員用相同的名字,在引用這些資料成員時,指定作用域。 * (4)在類體中宣告成員函式,在類外定義成員函式。 * (5)在派生類Teacher_Cadre的成員函式show中呼叫Teacher類中的display函式,輸出姓名、年齡、性別、職稱、地址、電話,然後再用cout語句輸出職務與工資。 */ #include <iostream> using namespace std; class Teacher { public: Teacher(string nam,int a,string s,string add,string t,string tit); void display(); private: string name; int age; string sex; string addr; string tel; string title; }; Teacher::Teacher(string nam,int a,string s,string add,string t,string tit): name(nam),age(a),sex(s),addr(add),tel(t),title(tit){} void Teacher::display() { cout<<"姓名:"<<name<<endl<<"年齡:"<<age<<endl; cout<<"性別:"<<sex<<endl<<"住址:"<<addr<<endl; cout<<"電話:"<<tel<<endl<<"職稱:"<<title<<endl; } class Cadre { public: Cadre(string nam,int a,string s,string add,string t,string p); void display(); string getPost(){return post;}; private: string name; int age; string sex; string addr; string tel; string post; }; Cadre::Cadre(string nam,int a,string s,string add,string t,string p): name(nam),age(a),sex(s),addr(add),tel(t),post(p){} void Cadre::display() { cout<<"姓名:"<<name<<endl<<"年齡:"<<age<<endl; cout<<"性別:"<<sex<<endl<<"住址:"<<addr<<endl; cout<<"電話:"<<tel<<endl<<"職務:"<<post<<endl; } class Teacher_Cadre:public Teacher,Cadre { public: Teacher_Cadre(string nam,int a,string s,string add,string t,string p,string tit,int w); void show(); private: int wages; }; Teacher_Cadre::Teacher_Cadre(string nam,int a,string s,string add,string t,string p,string tit,int w): Teacher(nam,a,s,add,t,tit),Cadre(nam,a,s,add,t,p),wages(w){} void Teacher_Cadre::show() { Teacher::display(); cout<<"職務:"<<getPost()<<endl; cout<<"工資:"<<wages<<endl; } int main() { Teacher_Cadre t("zhangsan",35,"G","BeiJing","13666666666","科長","高階",6666); t.show(); return 0; }
執行結果: