1. 程式人生 > >實驗七:專案二學生類

實驗七:專案二學生類

一、問題及程式碼

/* 檔名稱:實驗七.cpp
* 作    者:吳濤濤
* 完成日期:2017 年 5 月 21 日
* 版 本 號:v1.0
* 對任務及求解方法的描述部分:
* 輸入描述:無
* 問題描述:
         【專案2 - 學生類】

* 演算法設計:略
*/
    #include<iostream>
    #include<string>
    using namespace std;
    class Stu   //宣告基類
    {
    public:
        Stu(int n, string nam ){
           num=n;
           name=nam;
        };  //基類建構函式
        void display( ){
           cout<<"學號:"<<num<<endl;
           cout<<"姓名:"<<name<<endl;
        };          //成員函式,輸出基類資料成員
    protected:        //(*)訪問許可權為保護型的資料成員
        int num;      //學生學號
        string name;  //學生姓名
    };
    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):Stu(n,nam),age(a),addr(ad),monitor(n1,nam1){}; //派生類建構函式
        void show( ){
            cout<<"學生資訊:"<<endl;
            display();
            cout<<"年齡:"<<age<<endl;
            cout<<"住址:"<<addr<<endl;
            cout<<endl;
        }; //成員函式,輸出學生的資訊
        void show_monitor( ){
            cout<<"班長資訊:"<<endl;
            monitor.display();
        };    //成員函式,輸出班長資訊
    private:
        Stu monitor;   //學生所在班的班長,班長是學生,是Stu類的成員
        int age;       //學生年齡
        string addr;   //學生的住址
    };
    int main( )
    {
        //學生張三,10010號,19歲,家住江西南昌,他的班長是李四,學號10001
        StuDetail s(10010,"張三",19,"江西南昌",10001,"李四");
        s.show( );                       //輸出學生資訊
        s.show_monitor();                //輸出班長資訊
        return 0;
    }

二、執行結果


三、心得體會

在繼承中操作雖然會比之前更具難度,但是寫出來的程式更加簡潔明瞭,而且掌握了之後寫起程式來省事很多。

儘管在初期,較難接受但是慢慢地多聯絡掌握後,自豪感油然而生。在這次程式設計中,遇到很多麻煩,查閱了許多

程式碼,和問了同學,但是最後成功時一切都是值得的。

四、知識點總結

派生類建構函式的語法格式:

派生類名::派生類名(總引數表):基類名(引數表),物件成員名(物件引數表)

{

     新增成員的初始化語句;

}