定义雇员类Employee

本文介绍了如何在C++中定义雇员类Employee,包括姓名、编号和部门号等属性,以及相应的设置函数和显示信息的成员函数Display。同时,还定义了一个经理类Manager,它继承自Employee,并增加了级别属性m_Level和设置级别的SetLevel函数。要求Manager类能直接访问Employee的成员,而外部不能直接访问。

定义雇员类Employee

【问题描述】定义雇员类Employee,包含string型成员变量m_Name(姓名)和m_No(编号),int型成员变量m_Department(部门号),成员函数SetName(string),SetNo(string),SetDept(int)分别用来设置姓名、编号和部门号,Display()函数用来输出雇员信息,还包含一个构造函数Employee(string,string,int)。定义一个经理类Manager,派生于雇员类Employee,新增成员变量m_Level表示级别和成员函数SetLevel(int)用来设置m_Level。

要求:

Manager类的成员函数可以直接访问Employee类中的成员变量,但类的外部不能直接访问。

【样例输入】

zhangqiang 001760 12

lihong 981002 12 3

wangxin 991013

【样例输出】

Employee’s information:

Name:zhangqiang

No:001760

Department:12

Employee’s information:

Name:lihong

No:981002

Department:12

Level:3

Employee’s information:

Name:wangxin

No:991013

Department:12

Level:3

#include  <iostream>
#include<string>
using  namespace  std;
class  Employee  {
public:
        Employee(string,  string,  int  );
        void  SetName(string);
        void  SetNo(string);
        void  SetDept(int);
        void  Display();
protected:
        string  m_Name,  m_No;
        int  m_Department;
};
Employee::Employee(string m_Name,string m_No,int m_Department)
{
    this->m_Name=m_Name;
    this->m_No=m_No;
    this->m_Department=m_Department;
}
void Employee::SetName(string m_Name)
{
    this->m_Name=m_Name;
}
void Employee::SetNo(string m_No)
{
    this->m_No=m_No;
}
void Employee::SetDept(int m_Department)
{
    this->m_Department=m_Department;
}
void Employee::Display()
{
    cout<<"Employee's information:"<<endl;
    cout<<"Name:"<<m_Name<<endl;
    cout<<"No:"<<m_No<<endl;
    cout<<"Department:"<<m_Department<<endl;
}
class Manager:public Employee
{
public:
    Manager(string m_Name,string m_No,int m_Department,int m_Level);
    void SetLevel(int);
    void Display();
protected:
    int m_Level;
};
Manager::Manager(string m_Name,string m_No,int m_Department,int m_Level):Employee(m_Name,m_No,m_Department)
{
    this->m_Level=m_Level;
}
void Manager::SetLevel(int m_Level)
{
    this->m_Level=m_Level;
}
void Manager::Display()
{
    Employee::Display();
    cout<<"Level:"<<m_Level<<endl;
}

int  main()  {
        string  name,  no;
        int  dept,  level;
        cin  >>  name  >>  no  >>  dept;
        Employee  e(name,no,dept);
        e.Display();
        cin  >>  name  >>  no  >>  dept  >>  level;
        Manager  m(name,  no,  dept,  level);
        m.Display();
        cin  >>  name  >>  no;
        m.SetName(name);
        m.SetNo(no);
        m.Display();
        return  0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值