关于继承和派生的一个C++问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 16:34:15
//1)定义一个基类Employee,实现员工的基本信息的设置.
#include<iostream.h>
#include<string.h>

class Employee
{
public:
Employee(char *aName);
char * getName(void); //得到职工的姓名
void Disp(); //显示职工详细信息
double earnings(int salory); //计算职工的工资的虚函数
int getId(void)
{
return Id;
}
~Employee();
protected:
int Id; //职工编号
char *name; //职工姓名
};

Employee::Employee(char *aName)
{
name = new char[strlen(aName)+1];

int num;
strcpy(name, aName);

cout << "请输入 ID:";
cin >> num;
Id = num;
}

char *
Employee::getName(void)
{
return name;
}

void
Employee::Disp(void)
{
cout << "职工姓名:" << name << endl;
cout << "职工编号:" << Id << endl;
cout << "职工工资:"

Boss(char *NAME):Employee(NAME){} //使用了Employee的构造函数,所以也会调用Employee的析构函数来删除name
Boss::~Boss() //这里又调用了boss的析构函数来删除name,因为一个内存不能删除两遍,所以报错。
{
delete []name;
}