定义一个描述员工(Employee)基本情况的类,数据成员包括编号(num)、姓名(name)、性别(sx)、工资(wage)、人数(count)、总工资(totalWage)。
【要求】:
1.总工资和人数为静态数据成员;
2.构造函数由已知参数:编号(num)、姓名(name)、性别(sx)和工资(wg)进行初始化;
3.显示基本数据函数(ShowBase)用于显示学生的编号、姓名、性别和工资;
4.显示静态数据函数(ShowStatic)为静态成员函数,用于显示人数和总工资;
5.在主函数中定义3个员工对象,分别显示员工基本信息,以及显示员工人数和总工资。
解析:
静态成员分为:静态成员变量和静态成员函数
静态成员变量:
1.所有对象共享一份数据
2.在编译阶段分配内存
3.类内声明,类外初始化
静态成员函数:
1.所有对象共享同一个函数
2.静态成员函数只能访问静态成员变量
#include<iostream>
#include<string>
using namespace std;
class Employee
{
public:
Employee(int num,string name,string sx,double wg);
~Employee();
void showBase();
static void showstatic();
private:
static double totalWage; //总工资
static int count; //人数
int num1;
string name1;
string sx1;
double wg1;
};
int Employee::count=0;
double Employee::totalWage=0;
Employee::Employee(int num,string name,string sx,double wg)
{
num1=num;name1=name;sx1=sx;wg1=wg;
count++; //有对象生成增加人数
totalWage+=wg1; //有对象生成增加总工资
}
Employee::~Employee(){}
void Employee::showBase()
{
cout<<"编号"<<num1<<" 姓名:"<<name1<<" 性别:"<<sx1<<" 工资:"<<wg1<<endl;
}
void Employee::showstatic()
{
cout<<"总人数"<<count<<endl<<"总工资"<<totalWage<<endl;
}
int main()
{
Employee Em1(1,"张三","男",1500);
Em1.showBase();
Employee Em2(2,"李四","女",2500);
Em2.showBase();
Employee Em3(3,"王五","男",3500);
Em3.showBase();
Employee::showstatic();
return 0;
}
结果如下