1. 程式人生 > >C++試題程式碼筆記

C++試題程式碼筆記

有一個Person類,私有資料成員name、age和sex分別表示人的姓名、年齡和性別。僱員類EmployeePerson的派生類,新增資料成員部門department和薪水salary。請用C++程式碼描述這兩個類,並用Employee類的成員函式Display實現僱員的姓名、年齡、性別、部門和薪水的輸出。(要求編寫派生類的建構函式) 

#include<iostream>
#include<cstring>
using namespace std;
class Person
{
public:

    Person(const char *s1 = NULL, int a = 0,const char *s2 =NULL)
    {				  //char *背後的含義是:給我個字串,我要修改它。
        strcpy(name, s1);	  //而理論上,我們傳給函式的字面常量是沒法被修改的。
        age = a;		  //所以說,比較合理的辦法是把引數型別修改為const char *。
        strcpy(sex, s2);	  //這個型別說背後的含義是:給我個字串,我只要讀取它。
    }

      void Display()
    {
        cout << name << "  " << age << "  " << sex << "  ";
    }

private:
    char name[8];
    int age;
    char sex[4];
};

class Employee:public Person
{
public:
    Employee(const char *s1 = NULL, int a = 0,const char *s2 = NULL,const char *s3 = NULL, double s = 0):Person(s1, a, s2)
    {
        strcpy(department, s3);
        salary = s;
    }
	
    void Display()
    {
	Person::Display();  //*因為name、age和sex是私有資料成員,所以要基類呼叫。
        cout << department << "  " << salary << endl;
    }

private:
    char department[12];
    double salary;
};

int main()
{
    Employee ee("測試",88,"男","計算機",81088.6); 
    ee.Display();
    return 0;
}

輸出結果: 

測試  88  男  計算機  81088.6