关于继承和派生的一个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 << "职工工资:"
#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;
}