コードで「+」および「=」演算子をオーバーロードしようとしていますが、実行時エラーが発生し続け、VS2012 を使用して実行するとプログラムがクラッシュしますが、borland C 3.1 では完全に実行されます。
これが私のコードです:
class employee{
    int eid;
    long esalary;
    char * ename;
    static char company_name[20];
    static int emp_count;
    public:
    static char * getcompanyname(){
        return company_name;
    }
    static int getempcount(){
        return emp_count;
    }
    void set(int empid);
    void set(long empsalary);
    void set(char empname[]);
    int getid();
    long getsalary();
    char * getname();
    employee(int empid=0,long empsalary=0,char empname[]="NA"){
        eid=empid;
        esalary=empsalary;
        ename=new char[strlen(empname)+1];
        strcpy(ename,empname);
        emp_count++;
    }
    employee(employee &ref){
        eid=ref.eid;
        esalary=ref.esalary;
        ename=new char(strlen(ref.ename)+1);
        strcpy(ename,ref.ename);
    }
    ~employee(){
        delete(ename);
    }
    employee operator+(employee &ref){
        employee temp(*this);
        temp.esalary=esalary+ref.esalary;
        return(temp);
    }
    employee& operator= (employee &ref){
        eid=ref.eid;
        esalary=ref.esalary;
        return * this;
    }
}e1,e2,emp;
次にメインで:
emp=e1+e2;