//
// main.cpp
// duojichengc++
//
// Created by duanqibo on 2019/7/12.
// Copyright © 2019年 duanqibo. All rights reserved.
// 面向對象程式設計--多繼承
/*
定義基類employee,基中包括:
4個資料成員:eName,eAge,Job,Wage
構造函數,為4個資料成員指派
一個成員函數,輸出4個資料成員的值
定義另一個基類student,其中包括:
3個資料成員:sName,sSex,Score
構造函數,為3個資料成員指派
一個成員函數,輸出3個資料成員的值
定義派生類enginMaster類的對象數組,并為其中每個對象的資料成員賦初值
循環輸出對象數組中每個對象的資料成員
*/
#include <iostream>
#include <string>
using namespace std;
//定義老師類
class employee
{
protected:
string eName;
int eAge;
string eJob;
int eWage;
public:
employee(string name,int age,string job,int wage)
{
eName=name;
eAge=age;
eJob=job;
eWage=wage;
}
void eShow()
{
cout<<"職工姓名:"<<eName<<" ";
cout<<"職工年齡:"<<eAge<<" ";
cout<<"工作崗位:"<<eJob<<endl;
cout<<"工資:"<<eWage<<endl;
}
};
//定義學生類
class student
{
protected:
string sName;
char sSex;
float sScore;
public:
student(string name,char sex,float score)
{
sName=name;
sSex=sex;
sScore=score;
}
void sShow()
{
cout<<"學生姓名:"<<sName<<" ";
cout<<"學生性别:"<<sSex<<" ";
cout<<"考試成績:"<<sScore<<" ";
}
};
//定義多繼承的工程碩士類
class enginMaster:public employee,public student
{
private:
float Fee;
public:
enginMaster(string name,int age,char sex,string job,float score,float wage,float fee):employee(name,age,job,wage),student(name,sex,score)
{
Fee=fee;
}
void show()
{
cout<<eName<<'\t'<<eAge<<'\t'<<sSex<<'\t'<<eJob<<'\t';
cout<<sScore<<'\t'<<eWage<<'\t'<<Fee<<endl;
}
};
//主函數
int main(int argc, const char * argv[])
{
enginMaster master[5]={enginMaster("張京",26,'m',"技術",87,6800,12000),
enginMaster("王瑩",26,'w',"會計",87,6800,12000),
enginMaster("李玉",26,'w',"文員",87,6800,12000),
enginMaster("劉凡",26,'m',"主管",87,6800,12000),
enginMaster("陳榮",26,'m',"技術",87,6800,12000)
};
//輸出對象數組
cout<<"号"<<'\t'<<"姓名"<<'\t'<<"年齡"<<'\t'<<"性别"<<'\t'<<"崗位"<<'\t'<<"成績"<<'\t';
cout<<"工資"<<'\t'<<"學費"<<endl;
for(int i=0;i<5;i++)
{
cout<<i<<'\t';
master[i].show();
}
return 0;
}
運作結果: