您的位置:首页 > 编程语言 > C语言/C++

再读C++ Primer 写了个小例子(08-01-16)

2008-03-19 21:35 513 查看
实现了几个类的继承操作 ,


#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;


}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ manager null class