1. 程式人生 > >第十週專案2——職員有薪水了

第十週專案2——職員有薪水了

問題及程式碼:

/*
*Copyright (c)2015,煙臺大學計算機與控制工程學院
*All rights reserved.
*檔名稱:person.cpp
*作    者:趙敏
*完成日期:2015年5月21日
*版 本 號:v1.0
*
*問題描述:定義一個名為CPerson的類,有以下私有成員:姓名、身份證號、性別和年齡,成員函式:建構函式、解構函式、輸出資訊的函式。並在此基礎上派生出CEmployee類,派生類CEmployee增加了兩個新的資料成員,分別用於表示部門和薪水。要求派生類CEmployee的建構函式顯示呼叫基類CPerson的建構函式,併為派生類CEmployee定義解構函式,定義輸出資訊的函式。
*/
#include <iostream>

using namespace std;
class CPerson
{
protected:
    string m_szName;
    string m_szId;
    int m_nSex;//0:women,1:man
    int m_nAge;
public:
    CPerson(string name,string id,int sex,int age)
    {
        m_szName=name;
        m_szId=id;
        m_nSex=sex;
        m_nAge=age;
    }
    void Show1()
    {
        cout<<m_szName<<" "<<m_szId<<" ";
        if(m_nSex==0)
            cout<<"woman";
        else
            cout<<"man";
    cout<<" "<<m_nAge<<endl;
    }
    ~CPerson(){}
};

class CEmployee:public CPerson
{
private:
    string m_szDepartment;
    double m_Salary;
public:
    CEmployee(string name,string id,int sex,int age,string department,double salary):
        CPerson(name,id,sex,age)
        {
            m_szDepartment=department;
            m_Salary=salary;
        }
    void Show2()
    {
        cout<<m_szName<<" "<<m_szId<<" ";
        if(m_nSex==0)
            cout<<"woman";
        else
            cout<<"man";
    cout<<" "<<m_nAge<<" "<<m_szDepartment<<" "<<m_Salary<<endl;
    }
    ~CEmployee(){}
};

int main()
{
    string name,id,department;
    int sex,age;
    double salary;
    cout<<"input employee's name,id,sex(0:women,1:man),age,department,salary:\n";
    cin>>name>>id>>sex>>age>>department>>salary;
    CEmployee employee1(name,id,sex,age,department,salary);
    employee1.Show2();
    return 0;
}


執行結果:


知識點總結:

繼承與派生