📄 member.h
字号:
//Member.h: interface for the Member class.
#ifndef MEMBER_H
#define MEMBER_H
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
class Member
{
protected:
unsigned long m_income; //定义的总的收入
static int ID; //成员编号
char* m_name; //姓名
int m_idnum; //成员数
int m_lever; //成员级别
public:
Member():m_name(""),m_idnum(0),m_income(0),m_lever(0){} //用初始化列表对成员变量进行初始化
Member(char* name1):m_income(0),m_lever(0)
{
m_name=new char[strlen(name1)+1]; //给名字动态分配空间
strcpy(m_name,name1);
m_idnum=++ID; //成员数是由人数进行增加
}
void Setlever(int value) //设置级别的
{
m_lever=value;
}
virtual int Getlever() //获取级别的
{
return m_lever;
}
virtual void Setsv(unsigned long value){} //提供收入的接口
virtual void Setpsv(unsigned long value){} //提供个人收入的接口
virtual void Setwktm(int wt) {} //提供工作时间的接口
virtual ~Member()
{
delete []m_name; //释放空间
--ID; //删除人员,人数减少1
}
int getidnum() //取得成员的编号
{
return m_idnum;
}
double getincome() //取得成员的收入
{
return m_income;
}
void setidnum(int num) //设置成员的编号
{
m_idnum=num;
}
void setincome(double value) // 设置收入函数
{
m_income=value;
}
char * getname() //获取成员姓名
{
return m_name;
}
void setname(char* n) //设置成员名字
{
delete []m_name;
m_name=new char[strlen(n)+1];
strcpy(m_name,n);
}
friend istream & operator>>(istream& is,Member& ob) // 对“>>”运算符进行重载
{
char name[20];
is>>name;
ob.setname(name);
is>>ob.m_idnum;
is>>ob.m_lever;
is>>ob.m_income;
return is;
}
friend ostream & operator<<(ostream& os,Member& ob) // 对“<<”运算符进行重载,输出信息的
{
os<<ob.m_name<<'\n';
os<<ob.m_idnum<<'\n';
os<<ob.m_lever<<'\n';
os<<ob.m_income<<'\n';
return os;
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -