void Worker_Manger::Add_Emp()
{
cout << "请输入添加的职工数量:" << endl;
int addnum = 0;//保存用户的输入数量
cin >> addnum;
if (addnum > 0)
{
int newSize = this->M_EmpNum + addnum;//新空间人数=原来的人数+新增加人数
//开辟新空间
Worker ** newspace = new Worker * [newSize*4];
//拷贝原来空间的数据
if (this->M_EmpArray != NULL)
{
for (int i = 0; i < this->M_EmpNum;i++)
{
newspace[i] = this->M_EmpArray[i];
}
}
//添加新数据
for (int i = 0; i < addnum; i++)
{
int id;//职工编号
string name;//职工的姓名
int dSelect;//部门选择
cout << "请输入第" << i + 1 << "个职工编号:" << endl;
cin >>id;
cout << "请输入第" << i + 1 << "个职工姓名:" << endl;
cin >> name;
cout << "请选择该职工的岗位:" << endl;
cout << "1.职员" << endl;
cout << "2.经理" << endl;
cout << "3.总裁" << endl;
cin >> dSelect;
Worker* worker = NULL;
switch (dSelect)
{
case 1:
worker = new Employee(id, name, 1);
break;
case 2:
worker = new Manager(id, name, 2);
break;
case 3:
worker = new Boss(id, name, 3);
break;
default:
break;
}
//将创建职工职责,保存到数组中
if (sizeof(newspace) <=sizeof(newSize))
{
newspace[this->M_EmpNum + i] = worker;
}
}
}
*4是什么意思,去掉*4会有警告显示缓冲区溢出。