C++ 每当我试图初始化雇主对象时,我的程序都会给出一个未处理的异常错误
我试图使用emp2指针初始化Employer对象,但一直出现错误: empPract.exe中0x008d2c6b处未处理的异常:0xC0000005:Access 读取位置0xCDCDCDDE5时发生冲突 我试图通过单步遍历代码并在线查找错误代码来查找错误。如何识别和纠正问题 代码如下: 主要驱动因素:C++ 每当我试图初始化雇主对象时,我的程序都会给出一个未处理的异常错误,c++,oop,pointers,C++,Oop,Pointers,我试图使用emp2指针初始化Employer对象,但一直出现错误: empPract.exe中0x008d2c6b处未处理的异常:0xC0000005:Access 读取位置0xCDCDCDDE5时发生冲突 我试图通过单步遍历代码并在线查找错误代码来查找错误。如何识别和纠正问题 代码如下: 主要驱动因素: #include "Employer.h" #include <string> #include <iostream> using namespace std; v
#include "Employer.h"
#include <string>
#include <iostream>
using namespace std;
void main(){
Employer *emp2;
emp2=new Employer();// this is where i tried to initialize the employer
cout <<"Employer id:" << emp2->getUniqueId() << endl;
system("PAUSE");
}// end main
#包括“雇主.h”
#包括
#包括
使用名称空间std;
void main(){
雇主*emp2;
emp2=新雇主();//这是我试图初始化雇主的地方
cout setParish(“”);
//设置链接
next=NULL;
}//默认构造函数
雇主(int id、字符串cname、地址*usrAdd、字符串电话、字符串联系人名称、字符串CONTITLE、字符串aoe){
empID=id;
companyName=cname;
compTelephone=电话;
contactName=联系人的名称;
contactTitle=contTitle;
就业领域=aoe;
empAddress->setStreet(usrAdd->getStreet());
empAddress->setStreetNum(usrAdd->getStreetNum());
empAddress->setParish(usrAdd->getParish());
//设置链接
next=NULL;
}//主构造函数*/
//复制构造函数
雇主(雇主*emp1){
empID=emp1->getUniqueId();
companyName=emp1->getCompanyName();
compTelephone=emp1->getCompTelephone();
contactName=emp1->getContactName();
contactTitle=emp1->getContactTitle();
就业领域=emp1->getAOE();
empAddress=emp1->getAddress();
next=NULL;
}//复制构造函数
//析构函数
雇主::~雇主(){
删除地址;
删除下一步;
}//析构函数
void setEmpID(){
//srand(5);
//EmpID=rand()%MAX+1;
}//设置id
int getUniqueId(){
返回empID;
}//EmpID的getter结束
void setCompanyName(字符串cname){
companyName=cname;
}//公司名称设置器的结尾
字符串getCompanyName(){
返回公司名称;
}//返回companyName的函数结束
void setCompTelephone(字符串cTele){
compTelephone=cTele;
}//公司电话号码设置器的末尾
字符串getCompTelephone(){
回电;
}//公司电话号码的getter结尾
void setContactName(字符串cName){
contactName=cName;
}//setContactName的结尾
字符串getContactName(){
返回联系人姓名;
}//contactName的getter结束
void setContactTitle(字符串标题){
contactTitle=标题;
}//contactTitle的setter结束
字符串getContactTitle(){
返回联系人姓名;
}//contactTitle的getter结束
void setMaxRecruites(int max){
maxcreates=max;
}//MaxRecrupt的setter结束
int getMaxRecruites(){
返回新兵;
}//MaxRecruites的getter结束
无效设置就业区域(字符串aoe){
就业领域=aoe;
}//aoe设定器的结束
字符串getAOE(){
就业返回区;
}//就业领域吸气剂的末端
//设置链接
无效setNext(雇主*nx){
next=nx;
}//setNexEmp的末端突变子
无效设置地址(字符串街道、字符串街道编号、字符串par){
empAddress->setStreet(街道);
EMPADRESS->setStreetNum(街道编号);
empAddress->setParish(par);
}//雇主地址设置器的末尾
地址*getAddress(){
返回地址;
}//地址的getter结束
//设置链接
雇主*getNext(){
下一步返回;
}//NextTemployer的getter结束
};
#恩迪夫
求职者类别:
#ifndef JOBSEEKER_H
#define JOBSEEKER_H
#include <string>
#include "Address.h"
#include "Person.h"
#include <time.h>
#include "Date.h"
using namespace std;
class JobSeeker:public Person{
private:
string middlename;
string gender;
string TRN;
string NIS;
Person *reference[2];
Date *dob;
string AreaOfInt;
string recruitmentStatus;
string companyPlaced;
time_t lastSelectedDate; // date the JobSeeker was last recruited/ placed
time_t dateOfRegistration; // date the job seekeer registered
Address *jSeekerAddress;
// links
JobSeeker *next;
public:
JobSeeker(){
int i;
next=NULL;
dob=NULL;
middlename="";
firstname="";
lastname="";
TRN="";
NIS="";
gender="";
wrkNum="";
cellNum="";
homeNum="";
for (i=0; i<2;i++){
reference[i]->setFirstName("");
reference[i]->setLastname("");
reference[i]->setCellNum("");
reference[i]->setHomeNum("");
reference[i]->setWrkNum("");
Address *temp=new Address();
reference[i]->setAddress(temp);
}// end for loop
AreaOfInt="";
recruitmentStatus="";
companyPlaced="";
lastSelectedDate=time(0); // last selected date for job seeker
dateOfRegistration=time(0); // date the job seeker registered
jSeekerAddress->setStreet("");
jSeekerAddress->setStreetNum("");
jSeekerAddress->setParish("");
}// end of default constructor for job seeker
JobSeeker(JobSeeker *js){
int i;
firstname= js->getFirstname();
middlename=js->getMiddlename();
lastname=js->getLastname();
dob=js->getDOB();
TRN=js->getUniqueId();
NIS=js->getNIS();
gender=js->getGender();
wrkNum=js->getWrkNum();
cellNum= js->getCellNum();
homeNum=js->getHomeNum();
reference[i]= js->getReference1();
reference[i]=js->getReference2();
//reference[i]->
lastSelectedDate=js->getSelectedDate();
dateOfRegistration=js->getDateOFReg();
AreaOfInt=js->getAreaOFInt();
recruitmentStatus=js->getRecruitStatus();
companyPlaced=js->getCompanyPlaced();
// set link to next jobseeker
next=js->getNext();
}// copy constructor
// destructor
JobSeeker::~JobSeeker(){
delete next;
delete dob;
delete reference[0]; reference[1];
delete jSeekerAddress;
}// destructor
void setMiddlename(string mname){
middlename=mname;
}// end of setter for middlename
string getMiddlename(){
return middlename;
}// end of getter for middlename
void setTRN(string usrTRN){
TRN=usrTRN;
}// end setter for TRN
string getUniqueId(){
return TRN;
}// end of getter for TRN
void setNIS(string usrNIS){
NIS=usrNIS;
}// end setter for NIS
string getNIS(){
return NIS;
}// end of getter for NIS
void setGender(char g){
gender = g;
}// end of gender setter
string getGender(){
return gender;
}// end of getter for gender
void setAreaOFInterest(string aoi){
AreaOfInt=aoi;
}// end of setter for AreaOfInt
string getAreaOFInt(){
return AreaOfInt;
}// end of getter for AreaOfInt
void setDOB(int d, int m, int y){
dob->setDay(d);
dob->setbMonth(m);
dob->setYear(y);
}// setter for date of birth of person
Date* getDOB(){
return dob;
}// end of getter for DOB
void addReference(Person *p, int numOfRef){
int count=0;
while(count <= numOfRef){
reference[count]->setFirstName(p->getFirstname());
reference[count]->setLastname(p->getLastname());
reference[count]->setCellNum(p->getCellNum());
reference[count]->setWrkNum(p->getWrkNum());
reference[count]->setHomeNum(p->getHomeNum());
//Address ad= p.getAddress();
reference[count]->setAddress(p->getStreetName() ,p->getStreetNum(),p->getParish());
//reference[count]->setAddress(p->getAddress());
}
}// end of loop to add reference
Person* getReference1(){
return reference[0];
}// end of getter for reference1
Person* getReference2(){
return reference[1];
}// end of getter for reference2
// method to set the registration date
void setDateOFReg(){
dateOfRegistration=time(0); // sets the date to the computer's date
}// end of method to set registration date
void setCompanyPlaced(string company){
companyPlaced=company;
}// end of setter for companyPlaced
string getCompanyPlaced(){
return companyPlaced;
}// end of accessor for comp placed
void setRecruitStatus(string status){
recruitmentStatus=status;
}// setter for recruitment status
string getRecruitStatus(){
return recruitmentStatus;
}// end of accessor for recruitment status
// method to get the registration date
time_t getDateOFReg(){
return dateOfRegistration;
/* Hubert please remember that the date is not formatted. to do so:
you must use 'ctime(&variableName)' with cout or gui
and remembe to include 'time.h' */
}// end of getter for registration date
void setDateSelected(){
lastSelectedDate=time(0); // this sets the time to the cuurrent date
}// sets last selected date to current date
time_t getSelectedDate(){
return lastSelectedDate; // remember needs formatting like registration date too
}// returns the last selected date
// set links (pointer)
void setNext(JobSeeker *n){
next=n;
}// end of setNext
JobSeeker * getNext(){
return next;
}// end of getNext
};// end class
#endif // end of Job Seeker class
\ifndef求职者
#定义求职者
#包括
#包括“Address.h”
#包括“Person.h”
#包括
#包括“Date.h”
使用名称空间std;
类别求职者:公众人士{
私人:
字符串名称;
字符串性别;
字符串TRN;
字符串NIS;
个人*参考文献[2];
日期*dob;
串面积;
字符串状态;
字符串并置;
time\u t lastSelectedDate;//求职者最后一次招聘/安置的日期
time\t dateOfRegistration;//求职者注册的日期
地址*jSeekerAddress;
//链接
求职者*下一位;
公众:
求职者(){
int i;
next=NULL;
dob=NULL;
middlename=“”;
firstname=“”;
lastname=“”;
TRN=“”;
NIS=“”;
性别=”;
wrkNum=“”;
cellNum=“”;
homeNum=“”;
对于(i=0;isetFirstName(“”);
参考[i]>setLastname(“”);
参考文献[i]->setCellNum(“”);
参考[i]>setHomeNum(“”);
参考文献[i]->setWrkNum(“”);
地址*临时=新地址();
参考[i]->设置地址(临时);
}//循环结束
AreaOfInt=“”;
招聘状态=”;
companyPlaced=“”;
lastSelectedDate=时间(0);//求职者最后选择的日期
dateOfRegistration=时间(0);//求职者注册的日期
jSeekerAddress->setStreet(“”);
jSeekerAddress->setStreetNum(“”);
jSeekerAddress->setParish(“”);
}//求职者的默认构造函数结束
求职者(求职者*js){
int i;
firstname=js->getFirstname();
middlename=js->getMiddlename();
lastname=js->getLastname();
dob=js->getDOB();
TRN=js->getUniqueId();
NIS=js->getNIS();
gender=js->getGender();
wrkNum=js->getWrkNum();
cellNum=js->getCellNum();
homeNum=js->getHomeNum();
reference[i]=js->getReference1();
reference[i]=js->getReference2();
//参考文献[i]>
lastSelectedDate=js->getSelectedDate();
dateOfRegistration=js->getDateOFReg();
AreaOfInt=js->getAreaOFInt();
招聘状态=js-
#ifndef JOBSEEKER_H
#define JOBSEEKER_H
#include <string>
#include "Address.h"
#include "Person.h"
#include <time.h>
#include "Date.h"
using namespace std;
class JobSeeker:public Person{
private:
string middlename;
string gender;
string TRN;
string NIS;
Person *reference[2];
Date *dob;
string AreaOfInt;
string recruitmentStatus;
string companyPlaced;
time_t lastSelectedDate; // date the JobSeeker was last recruited/ placed
time_t dateOfRegistration; // date the job seekeer registered
Address *jSeekerAddress;
// links
JobSeeker *next;
public:
JobSeeker(){
int i;
next=NULL;
dob=NULL;
middlename="";
firstname="";
lastname="";
TRN="";
NIS="";
gender="";
wrkNum="";
cellNum="";
homeNum="";
for (i=0; i<2;i++){
reference[i]->setFirstName("");
reference[i]->setLastname("");
reference[i]->setCellNum("");
reference[i]->setHomeNum("");
reference[i]->setWrkNum("");
Address *temp=new Address();
reference[i]->setAddress(temp);
}// end for loop
AreaOfInt="";
recruitmentStatus="";
companyPlaced="";
lastSelectedDate=time(0); // last selected date for job seeker
dateOfRegistration=time(0); // date the job seeker registered
jSeekerAddress->setStreet("");
jSeekerAddress->setStreetNum("");
jSeekerAddress->setParish("");
}// end of default constructor for job seeker
JobSeeker(JobSeeker *js){
int i;
firstname= js->getFirstname();
middlename=js->getMiddlename();
lastname=js->getLastname();
dob=js->getDOB();
TRN=js->getUniqueId();
NIS=js->getNIS();
gender=js->getGender();
wrkNum=js->getWrkNum();
cellNum= js->getCellNum();
homeNum=js->getHomeNum();
reference[i]= js->getReference1();
reference[i]=js->getReference2();
//reference[i]->
lastSelectedDate=js->getSelectedDate();
dateOfRegistration=js->getDateOFReg();
AreaOfInt=js->getAreaOFInt();
recruitmentStatus=js->getRecruitStatus();
companyPlaced=js->getCompanyPlaced();
// set link to next jobseeker
next=js->getNext();
}// copy constructor
// destructor
JobSeeker::~JobSeeker(){
delete next;
delete dob;
delete reference[0]; reference[1];
delete jSeekerAddress;
}// destructor
void setMiddlename(string mname){
middlename=mname;
}// end of setter for middlename
string getMiddlename(){
return middlename;
}// end of getter for middlename
void setTRN(string usrTRN){
TRN=usrTRN;
}// end setter for TRN
string getUniqueId(){
return TRN;
}// end of getter for TRN
void setNIS(string usrNIS){
NIS=usrNIS;
}// end setter for NIS
string getNIS(){
return NIS;
}// end of getter for NIS
void setGender(char g){
gender = g;
}// end of gender setter
string getGender(){
return gender;
}// end of getter for gender
void setAreaOFInterest(string aoi){
AreaOfInt=aoi;
}// end of setter for AreaOfInt
string getAreaOFInt(){
return AreaOfInt;
}// end of getter for AreaOfInt
void setDOB(int d, int m, int y){
dob->setDay(d);
dob->setbMonth(m);
dob->setYear(y);
}// setter for date of birth of person
Date* getDOB(){
return dob;
}// end of getter for DOB
void addReference(Person *p, int numOfRef){
int count=0;
while(count <= numOfRef){
reference[count]->setFirstName(p->getFirstname());
reference[count]->setLastname(p->getLastname());
reference[count]->setCellNum(p->getCellNum());
reference[count]->setWrkNum(p->getWrkNum());
reference[count]->setHomeNum(p->getHomeNum());
//Address ad= p.getAddress();
reference[count]->setAddress(p->getStreetName() ,p->getStreetNum(),p->getParish());
//reference[count]->setAddress(p->getAddress());
}
}// end of loop to add reference
Person* getReference1(){
return reference[0];
}// end of getter for reference1
Person* getReference2(){
return reference[1];
}// end of getter for reference2
// method to set the registration date
void setDateOFReg(){
dateOfRegistration=time(0); // sets the date to the computer's date
}// end of method to set registration date
void setCompanyPlaced(string company){
companyPlaced=company;
}// end of setter for companyPlaced
string getCompanyPlaced(){
return companyPlaced;
}// end of accessor for comp placed
void setRecruitStatus(string status){
recruitmentStatus=status;
}// setter for recruitment status
string getRecruitStatus(){
return recruitmentStatus;
}// end of accessor for recruitment status
// method to get the registration date
time_t getDateOFReg(){
return dateOfRegistration;
/* Hubert please remember that the date is not formatted. to do so:
you must use 'ctime(&variableName)' with cout or gui
and remembe to include 'time.h' */
}// end of getter for registration date
void setDateSelected(){
lastSelectedDate=time(0); // this sets the time to the cuurrent date
}// sets last selected date to current date
time_t getSelectedDate(){
return lastSelectedDate; // remember needs formatting like registration date too
}// returns the last selected date
// set links (pointer)
void setNext(JobSeeker *n){
next=n;
}// end of setNext
JobSeeker * getNext(){
return next;
}// end of getNext
};// end class
#endif // end of Job Seeker class
#ifndef PERSON_H
#define PERSON_H
#include "Address.h"
#include <string>
using namespace std;
class Person{
protected:
string firstname;
string lastname;
Address *personAddress;
string wrkNum;
string cellNum;
string homeNum;
//Person *persPointer;
public:
Person(){
firstname= "default";
lastname="default";
wrkNum="";
cellNum="";
homeNum="";
personAddress->setStreet("");
personAddress->setStreetNum(0);
personAddress->setParish("blank");
}// default constructor for person
//Address *personAddress;
void setFirstName(string fname){
firstname=fname;
}// end of firstname setter
void setLastname(string lname){
lastname=lname;
}// end of lastname setter
string getFirstname(){
return firstname;
}// end of getter for firstname
string getLastname(){
return lastname;
}// end of getter for lastname
void setWrkNum(string tNum){
wrkNum=tNum;
}// end of method to set home number
string getWrkNum(){
return wrkNum;
}// end of getter for telNum
void setCellNum(string cNum){
cellNum=cNum;
}// end of setter for cellNum
string getCellNum(){
return cellNum;
}// end of getter for cellNum
void setHomeNum(string hNum){
homeNum=hNum;
}// setter for home number
string getHomeNum(){
return homeNum;
}// getter for homeNum
void setAddress(string streetName, string streetNum, string parish){
personAddress->setStreet(streetName);
personAddress->setStreetNum(streetNum);
personAddress->setParish(parish);
}// end of address setter
void setAddress(Address *ad){
personAddress->setStreet(ad->getStreet());
personAddress->setStreetNum(ad->getStreetNum());
personAddress->setParish(ad->getParish());
}
Address* getAddress(){
return personAddress;
}// get personAddress
string getStreetName(){
return personAddress->getStreet();
}// end of method to get Street name
string getStreetNum(){
return personAddress->getStreetNum();
}// end of method to get streetNum
string getParish(){
return personAddress->getParish(); ;
}// end of getter for parish
};// end of class Person
#endif // PERSON_H
#ifndef Date_H
#define Date_H
#include <iostream>
using namespace std;
class Date{
private:
int day, month, year;
public:
Date(){
day= 0;
month=0;
year=0;
}// end of DOB default constructor
void setDay(int d){
day=d;
}// end of setter for bDay
// setbMonth
void setbMonth(int m){
month= m;
}// end of setter for bMonth
void setYear(int y){
year=y;
}// end of setter for year
// display method
void display(){
cout << month << "/ " << day <<"/ " << year << endl;
}// end diplay method for date
}; // emd of class DOB
#endif // Date_H
// class used for the addresses of the employees and the job seekers
// Date created Feb 28, 2012
#ifndef ADDRESS_H
#define ADDRESS_H
#include <string>
using namespace std;
class Address{
private:
string streetName;
string streetNum;
string parish;
public:
Address(){
streetName= "unknown";
streetNum="";
parish="blank";
}// end of default constructor for Address
// destructor for address
Address::~Address(){
}// end of destructor
void setStreet(string street){
streetName=street;
}// end of setter for street name
void setStreetNum(string streetNumber){
streetNum=streetNumber;
}// end of setter streetNumber
void setParish(string par){
parish=par;
}// end of setter for parish
//getters
string getStreet(){
return streetName;
}//end of getter for street
string getStreetNum(){
return streetNum;
}// end of getter for streetNum
string getParish(){
return parish;
}// end of getter for
};// end of class Address
#endif
empAddress->setStreet(" ");
empAddress->setStreetNum(" ");
empAddress->setParish(" ");