欢迎来到天天文库
浏览记录
ID:24728085
大小:750.50 KB
页数:58页
时间:2018-11-15
《《面向对象程序设计》讲义11》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《面向对象程序设计》讲义第11章11.1派生的概念继承是对象类间的一种相关关系,是派生关系,并具有以下性质:(1)类间的共享特性;(2)类间的细微区别;(3)类间的层次关系。第11章继承与类的派生11.1.1为什么使用继承1.继承可以重用先前项目的代码,如果原来的代码不能完全满足要求,还可以做少量的修改,满足不断变化的具体应用要求,从而提高程序设计的灵活性,避免不必要的重复设计。2.若某个项目使用了几个非常相似或稍有不同的类,就可以通过派生类的继承性达到函数和数据继承的目的。11.1.2派生类的定义1.派生新类的特性:(1)新类可以在基类所提供的基础上包含新的成员;(
2、2)在新的类中可隐藏基类的任何函数成员;(3)可为新的类重新定义成员函数。2.派生类的定义classx{//…};classy:x{//…};例如:有一个整数链表的类,如下所示:structnode{//每一结点结构intval;node*next;}classList{node*elems;//链表头指针public:List();~List();boolinsert(int);//在表前插入一个结点booldeletes(int);//在表中删除一个结点boolcontains(int);//在表中查找一个结点};由整型链表类派生出整型集合类,定义如下:class
3、set:List{intcard;//表示集合中的元素个数public:boolinsert(int);//…};11.1.3派生类对基类成员的访问权基类的私有成员派生类及派生类的使用者都无权访问。classx{intx,y;public:voidget_ij();//…};classy:x{intk;public:voidmake_k();//…};voidy::make(){k=i*j;//非法}1.私有派生classx{inta;public:intget(){returna;}//…};classy:x{intb;//..public:voidmake(){b
4、=get()+10;}//…};voidf(){xx1;yy1;y1.make();y1.get();//错误}2.公有派生classy:publicx{//…};基类中的所有公有成员在派生类中都是公有的。派生类对基类成员的访问权限:例1#includeclassbase{//定义一个基类intx1,x2;public:voidassign(intp1,intp2)//为私有数据赋值{x1=p1;x2=p2;}intinc1(){return++x1;}//返回增1后的x1值intinc2(){return++x2;}//返回增1后的x2值vo
5、iddisplay()//输出x1,x2之值{cout<<“basex1=”<6、n++x3;}//求x3增值voiddisplay()//输出x3之值{cout<<“derive1x3=”<7、:display();//先调用基类的display()cout<<“derive2x4=”<
6、n++x3;}//求x3增值voiddisplay()//输出x3之值{cout<<“derive1x3=”<7、:display();//先调用基类的display()cout<<“derive2x4=”<
7、:display();//先调用基类的display()cout<<“derive2x4=”<
此文档下载收益归作者所有