#include<iostream> #include<cstring> using namespace std; class Employee { private: long num; string name; char sex[4]; const char* sect; int wage; static int count; static long totalWage; public: Employee(long n,string nam,char se[4],const char* sec,int wag); void print(); static void ShowStatic(); }; Employee::Employee (long n,string nam,char se[4],const char* sec,int wag) { num=n; name=nam; strcpy(sex,se); sect=new char[strlen(sec)+1]; strcpy(sect,sec); wage=wag; count++; totalWage+=wag; } void Employee::ShowStatic() { cout<<count<<" "<<totalWage<<endl; } void Employee::print() { cout<<num<<" "<<name<<" "<<sex[4]<<" "<<sect<<" "<<wage<<endl; } int main () { int count=0; long totalWage=0; Employee a[2]={Employee(123,"dsb","nan","bzd",2023),Employee(234,"xsb","nv","bzd",2024)}; a[0].print(); a[1].print(); a[0].ShowStatic(); return 0; }
时间: 2023-12-06 13:40:49 浏览: 136
#include <iostream>
这是一个简单的员工类的实现,包含了员工的基本信息和工资信息。其中,静态成员变量count和totalWage用于统计所有员工的数量和工资总额。
在main函数中,先定义了一个局部变量count和totalWage,然后创建了两个Employee对象,并调用了print函数输出员工信息,最后调用了ShowStatic函数输出所有员工的数量和工资总额。
需要注意的是,sex数组的大小应该为5而不是4,因为字符串末尾需要有一个'\0'作为结束符。同时,在析构函数中应该释放sect指向的内存空间,避免内存泄漏。
阅读全文