C++ 每当我试图初始化雇主对象时,我的程序都会给出一个未处理的异常错误

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

我试图使用emp2指针初始化Employer对象,但一直出现错误:

empPract.exe中0x008d2c6b处未处理的异常:0xC0000005:Access 读取位置0xCDCDCDDE5时发生冲突

我试图通过单步遍历代码并在线查找错误代码来查找错误。如何识别和纠正问题

代码如下:

主要驱动因素:

#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(" ");