第十二週任務二 分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式有這兩個類派生出Teacher_Cadre
阿新 • • 發佈:2019-02-10
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:第十二週任務二 分別定義Teacher(教師)類和Cadre(幹部)類, 採用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師兼幹部) * 作 者: 史麗君 * 完成日期: 2012 年 5 月 8 日 * 版 本 號: * 對任務及求解方法的描述部分 * 輸入描述:】(教材P394習題9)分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師兼幹部)。要求: (1)在兩個基類中都包含姓名、年齡、性別、地址、電話等資料成員。 (2)在Teacher類中還包含資料成員title(職稱),在Cadre類中還包含資料成員post(職務),在Teacher_Cadre類中還包含資料成員wages(工資)。 (3)對兩個基類中的姓名、年齡、性別、地址、電話等資料成員用相同的名字,在引用這些資料成員時,指定作用域。 (4)在類體中宣告成員函式,在類外定義成員函式。 (5)在派生類Teacher_Cadre的成員函式show中呼叫Teacher類中的display函式,輸出姓名、年齡、性別、職稱、地址、電話,然後再用cout語句輸出職務與工資。 * 問題描述: * 程式輸出: * 程式頭部的註釋結束 */ #include<iostream> #include<string> using namespace std; class Teacher { public: void display(); Teacher(string nam,int a,char s,string ad,string te,string tit); protected: string name; int age; char sex; string addr; string tel; string title; }; class Cadre { public: void display1(); Cadre(string nam,int a,char s,string ad,string te,string p); protected: string name; int age; char sex; string addr; string tel; string post; }; class Teacher_Cadre:public Teacher,public Cadre { public: Teacher_Cadre(string nam,int a,char s,string ad,string te,string tit,string p,int w): Teacher(nam,a,s,ad,te,tit),Cadre(nam,a,s,ad,te,p),wage(w) {} void show(); protected: int wage; }; Teacher::Teacher(string nam,int a,char s,string ad,string te,string tit) { name=nam; age=a; sex=s; addr=ad; tel=te; title=tit; } Cadre::Cadre(string nam,int a,char s,string ad,string te,string p) { name=nam; age=a; sex=s; addr=ad; tel=te; post=p; } void Teacher::display() { cout<<"name:"<<name<<endl; cout<<"age:"<<age<<endl; cout<<"sex:"<<sex<<endl; cout<<"address:"<<addr<<endl; cout<<"tel:"<<tel<<endl; cout<<"title:"<<title<<endl; } void Cadre::display1() { cout<<"name"<<name<<endl; cout<<"age"<<age<<endl; cout<<"sex"<<sex<<endl; cout<<"address"<<addr<<endl; cout<<"tel"<<tel<<endl; cout<<"post"<<post<<endl; } void Teacher_Cadre::show() { display(); cout<<"post:"<<post<<endl; cout<<"wage:"<<wage<<endl; } int main () { Teacher_Cadre t("shitou",24,'m',"sdyt","123456","assistant","monitor",6000); t.show(); system("pause"); return 0; }
積累:char只能為單個字元