- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计科系类的继承和派生
实验二 派生类和继承
实验目的和要求 :
? 理解类的继承的概念,能够定义和使用类的继承关系。
? 掌握派生类的声明和定义方法。
? 掌握派生类构造函数的写法。
? 熟悉公有派生和私有派生的访问特性。
实验内容:
1.在一个公司中员工有两种类型:销售员和经理,他们都具有两个共同的属性:姓名和员工编号;但是他们的工资计算方式是不一样的:销售员的工资=每件商品提成*销售额,经理的工资=固定月薪
设置三个类:
? 员工类:数据成员为姓名和员工编号,成员函数为构造函数,析构函数;
? 经理类:数据成员为工资;成员函数为构造函数、设置工资函数和输出姓名和工资的输出函数。
? 销售员类:数据成员为工资、每件商品提成、销售额;成员函数为构造函数,设置每件商品提成和销售额函数,计算工资并输出姓名和工资的输出函数。
用主函数生成两个对象:销售员对象和经理对象,调用设置成员函数和输出成员函数。
程序如下:
#include iostream
#include string
using namespace std;
class Yuangong{
public:
Yuangong(char *name1,char *number1)
{
name=new char[strlen(name1)+1];
strcpy(name,name1);
number=new char[strlen(number1)+1];
strcpy(number,number1);
}
~Yuangong()
{
delete []name;
delete []number;
}
public:
char *name;
char *number;
};
class Xiaoshou:public Yuangong{
public:
Xiaoshou(char *name1,char *number1,int ticheng1,int xiaoshoue1):Yuangong(name1,number1)
{
ticheng=ticheng1;
xiaoshoue=xiaoshoue1;
}
~Xiaoshou()
{
delete []name;
delete []number;
}
int gongzi()
{
return ticheng*xiaoshoue;
}
void print()
{
cout姓名nameendl;
cout工号numberendl;
cout工资gongzi()endl;
}
public:
int ticheng;
int xiaoshoue;
};
class Jingli:public Yuangong{
public:
Jingli(char *name1,char *number1,int gongzi1):Yuangong(name,number)
{
gongzi=gongzi1;
}
~Jingli()
{
delete []name;
delete []number;
}
void print()
{
cout姓名nameendl;
cout工号numberendl;
cout工资gongziendl;
}
public:
int gongzi;
};
int main()
{
Xiaoshou obj1(daijiao,001,50,100);
cout销售类endl;
obj1.print();
Jingli obj2(adou,002,5001);
cout经理类endl;
obj2.print();
return 0;
}
总结:1.类完后一定要加“;”。
2.注意析构函数在派生类中的应用。
3.学会字符串的定义和应用。
4.在派生类中构造函数定义时总参数表要加类型,分参数表不加。
文档评论(0)