第十一週項目1(2)-存儲班長信息的學生類

/*
 *Copyright (c) 2014, 煙臺大學計算機學院
 *All rights reserved.
 *文件名稱:week11-1-2.cpp
 *作者:高贊
 *完成日期:2015年 5 月 18 日
 *版本號:v1.1
 *
 *問題描述:將Stu類的數據成員的訪問權限改爲private,修改程序.
 */
#include <iostream>

using namespace std;

class Stu   //聲明基類
{
public:
    Stu(int n, string nam );  //基類構造函數
    void display( );          //成員函數,輸出基類數據成員
protected:        //(*)訪問權限爲保護型的數據成員
    int num;      //學生學號
    string name;  //學生姓名
};
class StuDetail: private 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;   //學生的住址
};
Stu::Stu(int n, string nam ):num(n),name(nam) {}
void Stu::display()
{
    cout<<num<<endl<<name<<endl;
}
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( )
{
    display();
    cout<<age<<endl<<addr<<endl;
}
void StuDetail::show_monitor( )
{
    cout<<"班長:";
    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;
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章