sửa giúp mk với

class cong ty
#pragma once
#include "NhanVien1.h"

class CongTy1
{
int m_iSoNV;
NhanVien1 *nv[100];
public:
void Nhap();
void Xuat();
void tongLuong();
CongTy1(void);
~CongTy1(void);
};

CongTy1::CongTy1(void)
{
}

CongTy1::~CongTy1(void)
{
}
void CongTy1::Nhap()
{
cout << "nhap so nhan vien : ";
cin >> m_iSoNV;
for(int i = 0; i < m_iSoNV; i++)
{
int temp;
cout << endl << "tuyen nhan vien : " << endl;
cout << " 1. nhan vien van phong." << endl;
cout << " 2. nhan vien san xuat." << endl;
cout << "chon : ";
cin >> temp;
if(temp = 1)
{
cout << "nhan vien van phong" << endl;
nv[i] = new VanPhong;
}
if(temp == 2)
{
cout << "nhan vien san xuat" << endl;
nv[i] = new SanXuat;
}
nv[i]->Nhap();

}
}
void CongTy1::Xuat()
{
cout << endl << "DANH SACH NHAN VIEN CONG TY" << endl;
for(int i = 0; i < m_iSoNV; i++)
nv[i]->Xuat();
}

class nhân viên 1
#include "iostream"
#include "string.h"
using namespace std;
class NhanVien1
{
protected:
char *m_pHoTen;
int m_iNamVao;
public:
virtual void Nhap();
virtual void Xuat();
virtual int tinhLuong() = 0;
int troCap();
NhanVien1(const NhanVien1 &nv);
NhanVien1 &operator = (const NhanVien1 &nv);
NhanVien1(char *pHoTen, int iNamVao);
~NhanVien1(void);
NhanVien1(void);
};
void NhanVien1::Nhap()
{

cout << "nhap ten nhan vien : ";
m_pHoTen = new char[30];
cin.getline(m_pHoTen, 30);
cout << "nhap nam vao lam viec : ";
cin >> m_iNamVao;

}
void NhanVien1::Xuat()
{
cout << "Ho Ten : " << m_pHoTen << endl;
cout << "Nam vao : " << m_iNamVao << endl;
}
NhanVien1::NhanVien1(const NhanVien1 &nv)
{
m_pHoTen = new char[strlen(nv.m_pHoTen) + 1];
m_iNamVao = nv.m_iNamVao;
}
NhanVien1 &NhanVien1::operator =(const NhanVien1 &nv)
{
if (this->m_pHoTen == nv.m_pHoTen)
{
return *this;
}
if (this->m_pHoTen)
{
delete[]m_pHoTen;
}
int n = strlen(nv.m_pHoTen);
this->m_pHoTen = new char[n + 1];
strcpy(this->m_pHoTen, nv.m_pHoTen);
this->m_iNamVao = nv.m_iNamVao;
return *this;
}
NhanVien1::NhanVien1(char *pHoTen, int iNamVao)
{
m_pHoTen = new char[strlen(pHoTen) + 1];
strcpy(m_pHoTen, pHoTen);
m_iNamVao = iNamVao;
}

NhanVien1::~NhanVien1(void)
{
delete[]m_pHoTen;
}
int NhanVien1::troCap()
{
return (100 + (2009 - m_iNamVao) * 20);
}

NhanVien1::NhanVien1()
{

class nhân viên sản xuất

class SanXuat:public NhanVien1
{
protected:
int m_iSanPham;
public:
void Nhap();
void Xuat();
int tinhLuong();
SanXuat(const SanXuat &sx);
SanXuat &operator =(const SanXuat &sx);
SanXuat(char *pHoTen, int iNamVao, int iSanPham);
~SanXuat(void);
SanXuat(void);
};
SanXuat::SanXuat(const SanXuat &sx):NhanVien1(sx), m_iSanPham(sx.m_iSanPham)
{
}
SanXuat::SanXuat()
{

}
SanXuat::SanXuat(char *pHoTen, int iNamVao, int iSanPham):NhanVien1(pHoTen, iNamVao), m_iSanPham(iSanPham)
{

}
SanXuat &SanXuat ::operator =(const SanXuat &sx)
{
NhanVien1::operator =(sx);
this->m_iSanPham = sx.m_iSanPham;
return *this;
}
SanXuat::~SanXuat(void)
{
}
void SanXuat::Nhap()
{
NhanVien1::Nhap();
cout << "nhap so san pham lam dc : ";
cin >> m_iSanPham;
}
void SanXuat::Xuat()
{
NhanVien1::Xuat();
cout << "so san pham lam dc : " << m_iSanPham << endl;
}
int SanXuat::tinhLuong()
{
return (m_iSanPham * 10 + troCap());
}


class nhân viên văn phòng

#pragma once
#include "NhanVien1.h"
class VanPhong:public NhanVien1
{
protected:
int m_iMucLuong;
int m_iNgayNghi;
public:
void Nhap();
void Xuat();
int tinhLuong();
VanPhong(const VanPhong &vp);
VanPhong operator =(const VanPhong &);
VanPhong(char *pHoTen, int iNamVao, int iMucLuong, int iNgayNghi);
~VanPhong(void);
};

VanPhong VanPhong ::operator =(const VanPhong &vp)
{
m_pHoten = new char[strlen(vp.m_pHoTen) + 1];
m_iNamVao = vp.m_iNamVao;
m_iMucLuong = vp.m_iMucLuong;
m_iNgayNghi = vp.m_iNgayNghi;
return *this;
}
VanPhong::VanPhong(char *pHoTen, int iNamVao, int iMucLuong, int iNgayNghi):NhanVien1(pHoTen, iNamVao)
{
m_iMucLuong = iMucLuong;
m_iNgayNghi = iNgayNghi;
}

VanPhong::~VanPhong(void)
{
delete[]m_pHoTen;
}
void VanPhong::Nhap()
{
cout << "nhap ten nhan vien : ";
cin.ignore();
cin.getline(m_pHoTen);
cout << "nhap nam vao lam viec : ";
cin >> m_iNamVao;
cout << "nhap muc luong : ";
cin >> m_iMucLuong;
cout << "nhap so ngay nghi : ";
cin >> m_iNgayNghi;
}
void VanPhong::Xuat()
{
cout << "Ho Ten : " << m_pHoTen << endl;
cout << "Nam vao : " << m_iNamVao << endl;

}
int VanPhong::tinhLuong()
{
return (m_iMucLuong - m_iNgayNghi * 10 + troCap());
}