实现了几个类的继承操作 ,
#pragma
once
#include " employee.h "
class Developer :
public Employee
... {
public:
Developer(void);
~Developer(void);
Developer(int iTimeInJob);
Developer(Developer& dev);
// Developer(char* plname,char* plid,char* pljt,int iTimeInJob);
Developer::Developer(char* plname,char* plid,char* pljt,int iTimeInJob) :
Employee(plname,plid,pljt)
...{
TimeInJob = iTimeInJob;
}
int GetTimeInJob();
void Show();
void Job();
protected:
int TimeInJob;
} ;
#pragma once
using namespace std;
class Employee
... {
public:
Employee(void);
~Employee(void);
Employee(char* plname,char* plid,char* pljt);
virtual void Job()
...{
// Employee::show()
cout<<"I'm Employee"<<endl;
}
char* GetName();
char* GetId();
char* GetJoinTime();
void Show();
protected:
char Name[20];
char ID[8];
char JoinTime[16];
} ;
#pragma once
#include " employee.h "
#include " Developer.h "
class Leader :
public Employee
... {
public:
Leader(void);
Leader(char* plname,char* plid,char* pljt,Developer* dev1,Developer* dev2) :
Employee(plname,plid,pljt)
...{
devList[0]=dev1;
devList[1]=dev2;
TotalTime=dev1->GetTimeInJob() +dev2->GetTimeInJob();
}
void Job();
int GetTotaltime()
...{
return TotalTime;
}
~Leader(void);
protected:
Developer* devList[2];
int TotalTime;
} ;
#pragma once
#include " employee.h "
#include " Leader.h "
class Manager :
public Employee
... {
public:
Manager(void);
~Manager(void);
Manager(char* plname,char* plid,char* pljt,Leader* leader1,Leader* leader2) :
Employee(plname,plid,pljt)
...{
LeaderList[0]=leader1;
LeaderList[1]=leader2;
iTotalTime=leader1->GetTotaltime() +leader2->GetTotaltime();
}
void Job();
int GetTotalTime()
...{
return iTotalTime;
}
protected:
Leader* LeaderList[2];
int iTotalTime;
} ;
// class08011601.cpp : Defines the entry point for the console application.
//
#include " stdafx.h "
#include " Employee.h "
#include " Developer.h "
#include " Manager.h "
#include " Leader.h "
using namespace std;
int _tmain( int argc, _TCHAR * argv[])
... {
char* Ename=new char[20];
char* Eid=new char[20];
char* Etime=new char[20];
int time;
cin>>Ename>>Eid>>Etime>>time;
Employee emp(Ename,Eid,Etime);
Developer dev(Ename,Eid,Etime,time);
Developer dev1(dev);
Leader leader1(Ename,Eid,Etime,&dev1,&dev1);
Leader leader2(Ename,Eid,Etime,&dev1,&dev1);
Manager manager(Ename,Eid,Etime,&leader1,&leader2);
Manager manager1(Ename,Eid,Etime,&leader1,&leader2);
Manager manager2(Ename,Eid,Etime,&leader1,&leader2);
Manager manager3(Ename,Eid,Etime,&leader1,&leader2);
// Manager manager((Ename,Eid,Etime,&leader1,&leader2);
// cout<<emp.GetId()<<emp.GetJoinTime()<<emp.GetName()<<endl;
emp.Job();
// emp.Show();
// dev.Show();
dev.Job();
dev1.Job();
leader1.Job();
leader2.Job();
manager.Job();
manager1.Job();
manager2.Job();
manager3.Job();
char a;
cin>>a;
delete Ename;
Ename=NULL;
delete Eid;
Eid=NULL;
delete Etime;
Etime=NULL;
return 0;
}
#include " StdAfx.h "
#include " .developer.h "
using namespace std;
Developer::Developer( void )
... {
TimeInJob = 0;
}
Developer:: ~ Developer( void )
... {
}
Developer::Developer(Developer & dev)
... {
strcpy(Developer::GetId(),dev.GetId());
strcpy(Developer::GetJoinTime(),dev.GetJoinTime());
strcpy(Developer::GetName(),dev.GetName());
Developer::TimeInJob=dev.TimeInJob;
}
void Developer::Job()
... {
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
Employee::Show();
cout<<"Done a job"<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
}
Developer::Developer( int iTimeInJob)
... {
TimeInJob = iTimeInJob;
}
/**/ /*Developer::Developer(char* plname,char* plid,char* pljt,int iTimeInJob) :
Employee(char* plname,char* plid,char* pljt)
{
TimeInJob = iTimeInJob;
}
*/
void Developer::Show()
... {
Employee::Show();
cout<<Developer::GetTimeInJob()<<endl;
}
int Developer::GetTimeInJob()
... {
return TimeInJob;
}
#include " StdAfx.h "
#include " .employee.h "
using namespace std;
Employee::Employee( void )
... {
memset(Name,0,sizeof(Name));
memset(ID,0,sizeof(ID));
memset(JoinTime,0,sizeof(JoinTime));
}
Employee:: ~ Employee( void )
... {
}
Employee::Employee( char * plname, char * plid, char * pljt)
... {
strcpy(Name,plname);
strcpy(ID,plid);
strcpy(JoinTime,pljt);
}
/**/ /*virtual void Employee::Job()
{
cout<<"I'm Employee"<<endl;
}
*/
char * Employee::GetName()
... {
return Name;
}
char * Employee::GetId()
... {
return ID;
}
char * Employee::GetJoinTime()
... {
return JoinTime;
}
void Employee::Show()
... {
cout<<GetId()<<" ";
cout<<GetName()<<" ";
cout<<GetJoinTime()<<" ";
// Job();
}
#include " StdAfx.h "
#include " .leader.h "
using namespace std;
Leader::Leader( void )
... {
devList[0]=new Developer();
devList[1]=new Developer();
}
Leader:: ~ Leader( void )
... {
delete devList[0];
delete devList[1];
devList[0] = NULL;
devList[1]=NULL;
}
void Leader::Job()
... {
cout<<"---------------------------"<<endl;
cout<<"Leader Information"<<endl;
Leader::Show();
cout<<endl;
cout<<"---------------------------"<<endl;
cout<<"Leader Job"<<endl;
devList[0]->Show();
devList[1]->Show();
cout<<"Leader Total Time: "<<Leader::GetTotaltime()<<endl;
cout<<"---------------------------"<<endl;
}
#include " StdAfx.h "
#include " .manager.h "
Manager::Manager( void )
... {
LeaderList[0]=new Leader();
LeaderList[1]=new Leader();
}
Manager:: ~ Manager( void )
... {
delete LeaderList[0];
delete LeaderList[1];
LeaderList[0] = NULL;
LeaderList[1]=NULL;
}
void Manager::Job()
... {
cout<<"--------------------------------"<<endl;
cout<<"Manager information"<<endl;
Manager::Show();
cout<<endl;
cout<<"--------------------------------"<<endl;
cout<<"Manager Job"<<endl;
LeaderList[0]->Job();
LeaderList[1]->Job();
cout<<"Manager Total Time: "<<Manager::GetTotalTime()<<endl;
cout<<"-------------------------------"<<endl;
}
#include " employee.h "
class Developer :
public Employee
... {
public:
Developer(void);
~Developer(void);
Developer(int iTimeInJob);
Developer(Developer& dev);
// Developer(char* plname,char* plid,char* pljt,int iTimeInJob);
Developer::Developer(char* plname,char* plid,char* pljt,int iTimeInJob) :
Employee(plname,plid,pljt)
...{
TimeInJob = iTimeInJob;
}
int GetTimeInJob();
void Show();
void Job();
protected:
int TimeInJob;
} ;
#pragma once
using namespace std;
class Employee
... {
public:
Employee(void);
~Employee(void);
Employee(char* plname,char* plid,char* pljt);
virtual void Job()
...{
// Employee::show()
cout<<"I'm Employee"<<endl;
}
char* GetName();
char* GetId();
char* GetJoinTime();
void Show();
protected:
char Name[20];
char ID[8];
char JoinTime[16];
} ;
#pragma once
#include " employee.h "
#include " Developer.h "
class Leader :
public Employee
... {
public:
Leader(void);
Leader(char* plname,char* plid,char* pljt,Developer* dev1,Developer* dev2) :
Employee(plname,plid,pljt)
...{
devList[0]=dev1;
devList[1]=dev2;
TotalTime=dev1->GetTimeInJob() +dev2->GetTimeInJob();
}
void Job();
int GetTotaltime()
...{
return TotalTime;
}
~Leader(void);
protected:
Developer* devList[2];
int TotalTime;
} ;
#pragma once
#include " employee.h "
#include " Leader.h "
class Manager :
public Employee
... {
public:
Manager(void);
~Manager(void);
Manager(char* plname,char* plid,char* pljt,Leader* leader1,Leader* leader2) :
Employee(plname,plid,pljt)
...{
LeaderList[0]=leader1;
LeaderList[1]=leader2;
iTotalTime=leader1->GetTotaltime() +leader2->GetTotaltime();
}
void Job();
int GetTotalTime()
...{
return iTotalTime;
}
protected:
Leader* LeaderList[2];
int iTotalTime;
} ;
// class08011601.cpp : Defines the entry point for the console application.
//
#include " stdafx.h "
#include " Employee.h "
#include " Developer.h "
#include " Manager.h "
#include " Leader.h "
using namespace std;
int _tmain( int argc, _TCHAR * argv[])
... {
char* Ename=new char[20];
char* Eid=new char[20];
char* Etime=new char[20];
int time;
cin>>Ename>>Eid>>Etime>>time;
Employee emp(Ename,Eid,Etime);
Developer dev(Ename,Eid,Etime,time);
Developer dev1(dev);
Leader leader1(Ename,Eid,Etime,&dev1,&dev1);
Leader leader2(Ename,Eid,Etime,&dev1,&dev1);
Manager manager(Ename,Eid,Etime,&leader1,&leader2);
Manager manager1(Ename,Eid,Etime,&leader1,&leader2);
Manager manager2(Ename,Eid,Etime,&leader1,&leader2);
Manager manager3(Ename,Eid,Etime,&leader1,&leader2);
// Manager manager((Ename,Eid,Etime,&leader1,&leader2);
// cout<<emp.GetId()<<emp.GetJoinTime()<<emp.GetName()<<endl;
emp.Job();
// emp.Show();
// dev.Show();
dev.Job();
dev1.Job();
leader1.Job();
leader2.Job();
manager.Job();
manager1.Job();
manager2.Job();
manager3.Job();
char a;
cin>>a;
delete Ename;
Ename=NULL;
delete Eid;
Eid=NULL;
delete Etime;
Etime=NULL;
return 0;
}
#include " StdAfx.h "
#include " .developer.h "
using namespace std;
Developer::Developer( void )
... {
TimeInJob = 0;
}
Developer:: ~ Developer( void )
... {
}
Developer::Developer(Developer & dev)
... {
strcpy(Developer::GetId(),dev.GetId());
strcpy(Developer::GetJoinTime(),dev.GetJoinTime());
strcpy(Developer::GetName(),dev.GetName());
Developer::TimeInJob=dev.TimeInJob;
}
void Developer::Job()
... {
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
Employee::Show();
cout<<"Done a job"<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
}
Developer::Developer( int iTimeInJob)
... {
TimeInJob = iTimeInJob;
}
/**/ /*Developer::Developer(char* plname,char* plid,char* pljt,int iTimeInJob) :
Employee(char* plname,char* plid,char* pljt)
{
TimeInJob = iTimeInJob;
}
*/
void Developer::Show()
... {
Employee::Show();
cout<<Developer::GetTimeInJob()<<endl;
}
int Developer::GetTimeInJob()
... {
return TimeInJob;
}
#include " StdAfx.h "
#include " .employee.h "
using namespace std;
Employee::Employee( void )
... {
memset(Name,0,sizeof(Name));
memset(ID,0,sizeof(ID));
memset(JoinTime,0,sizeof(JoinTime));
}
Employee:: ~ Employee( void )
... {
}
Employee::Employee( char * plname, char * plid, char * pljt)
... {
strcpy(Name,plname);
strcpy(ID,plid);
strcpy(JoinTime,pljt);
}
/**/ /*virtual void Employee::Job()
{
cout<<"I'm Employee"<<endl;
}
*/
char * Employee::GetName()
... {
return Name;
}
char * Employee::GetId()
... {
return ID;
}
char * Employee::GetJoinTime()
... {
return JoinTime;
}
void Employee::Show()
... {
cout<<GetId()<<" ";
cout<<GetName()<<" ";
cout<<GetJoinTime()<<" ";
// Job();
}
#include " StdAfx.h "
#include " .leader.h "
using namespace std;
Leader::Leader( void )
... {
devList[0]=new Developer();
devList[1]=new Developer();
}
Leader:: ~ Leader( void )
... {
delete devList[0];
delete devList[1];
devList[0] = NULL;
devList[1]=NULL;
}
void Leader::Job()
... {
cout<<"---------------------------"<<endl;
cout<<"Leader Information"<<endl;
Leader::Show();
cout<<endl;
cout<<"---------------------------"<<endl;
cout<<"Leader Job"<<endl;
devList[0]->Show();
devList[1]->Show();
cout<<"Leader Total Time: "<<Leader::GetTotaltime()<<endl;
cout<<"---------------------------"<<endl;
}
#include " StdAfx.h "
#include " .manager.h "
Manager::Manager( void )
... {
LeaderList[0]=new Leader();
LeaderList[1]=new Leader();
}
Manager:: ~ Manager( void )
... {
delete LeaderList[0];
delete LeaderList[1];
LeaderList[0] = NULL;
LeaderList[1]=NULL;
}
void Manager::Job()
... {
cout<<"--------------------------------"<<endl;
cout<<"Manager information"<<endl;
Manager::Show();
cout<<endl;
cout<<"--------------------------------"<<endl;
cout<<"Manager Job"<<endl;
LeaderList[0]->Job();
LeaderList[1]->Job();
cout<<"Manager Total Time: "<<Manager::GetTotalTime()<<endl;
cout<<"-------------------------------"<<endl;
}