为什么这个函数里面使用不了这个类里面的变量,使用这个m_Empnum的时候就提示this是空指针,下面用到类里面的m_EmpArray也是出现同样的错误。
#include<iostream>
using namespace std;
#include"doWork.h"
#include"worker.h"
doWork::doWork() {
m_Empnum = 0;
m_EmpArray = NULL;
}
doWork::~doWork() {
if (m_EmpArray != NULL) {
delete[] m_EmpArray;
m_EmpArray = NULL;
}
}
void doWork::showmenu() {
cout << "****************************************" << endl;
cout << "*********欢迎使用职工管理系统 **********" << endl;
cout << "************0、退出管理程序*************" << endl;
cout << "************1、增加员工信息*************" << endl;
cout << "************2、显示职工信息*************" << endl;
cout << "************3、删除离职职工*************" << endl;
cout << "************4、修改职工信息*************" << endl;
cout << "************5、查找职工信息*************" << endl;
cout << "************6、按照编号排序*************" << endl;
cout << "************7、清空所有文档*************" << endl;
cout << "****************************************" << endl;
}
void doWork::exitSystem() {
cout << "欢迎下次使用。" << endl;
exit(0);
}
void doWork::Add_Sys() {
int addnum = 0;
int i;
int id;
string name;
int depselect;
cout << "请输入添加的人数:" << endl;
cin >> addnum;
if (addnum > 0) {
int k = addnum + this->m_Empnum;
worker** newspace = new worker * [k+4];
//newspace = new worker * [k];
if (m_Empnum != 0) {
for (i = 0; i < m_Empnum; i++) {
newspace[i] = m_EmpArray[i];
}
for (; i < m_Empnum + addnum; i++) {
cout << "请输入员工编号:" << endl;
cin >> id;
cout << "请输入员工姓名:" << endl;
cin >> name;
cout << "请输入员工岗位编号:" << endl;
cout << "1、普通员工" << endl
<< "2、经理" << endl
<< "3、老板" << endl;
cin >> depselect;
worker* worker = NULL;
switch (depselect) {
case 1:worker = new employee(id, name, depselect);
break;
case 2:worker = new manager(id, name, depselect);
break;
case 3:worker = new boss(id, name, depselect);
break;
default:
break;
}
newspace[i] = worker;
}
m_Empnum += addnum;
delete[] m_EmpArray;
m_EmpArray = newspace;
cout << "成功添加" << addnum << "名新员工。" << endl;
}
else cout << "添加有错。" << endl;
system("cls");
}
}