实验目的:定义一个名为CPerson的类,有以下私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、构析函数、输出信息的函数。并在此的基础上派生出CEmployee类,派生类CEmployee增加两个数据成员,分别表示部门和薪水,要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生类CEmployee定义构析函数,定义输出信息的函数
实验代码:
#include <iostream>
#include <string.h>
#include <iomanip>
using namespace std;
class CPerson
{
protected:
char * m_szName;
char * m_szId;
int m_nSex;
int m_nAge;
public:
CPerson(char *name, char *id, int sex, int age)
{
m_szName = name;
m_szId = id;
m_nSex = sex;
m_nAge = age;
}
~CPerson(){}
};
class CEmployee:public CPerson
{
private:
char *m_szDepartment;
float m_Salary;
public:
CEmployee(char *name, char *id, int sex, int age, char *department, float salary):CPerson(name, id, sex, age)
{
m_szDepartment = department;
m_Salary = salary;
}
void Show2()
{
cout << setiosflags(ios::right);
cout << setw(8) << "name" << setw(22) << "id" << setw(8) << "sex" << setw(8) << "age" << setw(14) << "department" << setw(10) << "salary" << endl;
cout << setw(8) << m_szName << setw(22) << m_szId << setw(8) << ((m_nSex == 0)?"woman":"man") << setw(8) << m_nAge << setw(14) << m_szDepartment << setw(10) << m_Salary << endl;
}
~CEmployee(){}
};
int main()
{
char name[10], id[19], department[10];
int sex, age;
float salary;
cout << "input employee's name, id, sex(0:woman, 1:man), age, department, salary:\n";
cin >> name >> id >> sex >> age >> department >> salary;
CEmployee employee1(name, id, sex, age, department, salary);
employee1.Show2();
system("pause");
return 0;
}
实验结果截图:
input employee's name, id, sex(0:woman, 1:man), age, department, salary:
Tom 370102198703255357 0 25 computer 2345.6
name id sex age department salary
Tom 370102198703255357 woman 25 computer 2345.6
请按任意键继续. . .
实验心得:
实验考查派生类的构造函数和构析函数,其实也是最简单的啦,请不要反驳我,不要误会,我可不是说这个题目很简单哦,只是,不相信我的话请看看课本P363,例11.5,算是很好的实验模板吧,整体构架几乎一模一样,只是在类名和函数上有所改动,说实话,这个题目要实现的功能函数并不难,所以,虽然,我在编写代码的过程中,并不太顺利,可是,只能说自己太眼高手低了,不管现在我们已经学到的东西有多少,千万不要自满,虽然接触C++已经半年多了,可是我们还是地地道道的菜鸟,不用说全国,就只是自己班里,厉害的人物也还是很多,最起码现在的我还是远远不过,要学的东西还有太多太多,差距是清晰可见的,现在能做的也只有,一步一个脚印,不要总是眺望高空,还是脚踏实地,回归课本,踏踏实实把课本学好。