第10.11周儲存班長資訊的學生類(1)
阿新 • • 發佈:2019-02-13
程式碼:
執行測試:/* *Copyright (c) 2016, 煙臺大學計算機與控制工程學院 *All rights reserved. *檔名稱:main.cpp; *作 者:嶽成豔2016年5月10號; *版 本 號:vc++6.0; * *問題描述:儲存班長資訊類。 *程式輸入:略; *程式輸出:略; */ #include <iostream> #include <string> using namespace std; class Stu //宣告基類 { public: Stu(int n, string nam ); //基類建構函式 void display( ); //成員函式,輸出基類資料成員 protected: //訪問許可權為保護型的資料成員 int num; //學生學號 string name; //學生姓名 }; Stu::Stu(int n, string nam ): num(n),name(nam){} //基類建構函式 void Stu::display( ) //成員函式,輸出基類資料成員 { cout<<"學號: "<<num<<endl; cout<<"姓名: "<<name<<endl; } class StuDetail: public Stu //宣告公用派生類StuDetail { public: //學生nam,學號n,a歲,家住ad,他的班長是nam1,學號n1 StuDetail(int n, string nam,int a, string ad,int n1, string nam1); //派生類建構函式 void show( ); void show_monitor( ); //成員函式,輸出子物件 private: Stu monitor; //學生所在班的班長,班長是學生,用Stu宣告 int age; //學生年齡 string addr; //學生的住址 }; StuDetail::StuDetail(int n, string nam,int a,string ad,int n1,string nam1): Stu(n,nam),monitor(n1,nam1),age(a),addr(ad){} //派生類建構函式 void StuDetail::show( ) { cout<<"學生資訊:"<<endl; cout<<"學號: "<<num<<endl; //輸出num和name cout<<"姓名: "<<name<<endl; cout<<"年齡: "<<age<<endl; //輸出age cout<<"住址: "<<addr<<endl<<endl; //輸出addr } void StuDetail::show_monitor( ) //成員函式,輸出子物件 { cout<<"班長資訊:"<<endl; monitor.display( ); //呼叫基類成員函式 } int main( ) { //學生王力,10010號,19歲,家住上海的北京路,他的班長是李孫,學號10001 StuDetail s(10010,"Wang-li",19,"115 Beijing Road,Shanghai",10001,"Li-sun"); s.show( ); //輸出學生的資料 s.show_monitor(); //輸出子物件的資料 return 0; }