第--章━━继承与派生优秀文档.ppt
上传人:天马****23 上传时间:2024-09-10 格式:PPT 页数:62 大小:265KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

第--章━━继承与派生优秀文档.ppt

第--章━━继承与派生优秀文档.ppt

预览

免费试读已结束,剩余 52 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C++程序设计主要内容继承机制继承机制继承机制派生类的定义━━单一继承【例】(在点类的基础上增加半径派生出圆类)#include<iostream.h>classPoint{floatx,y;public:Point(floata=0,floatb=0){x=a;y=b;}floatarea(){return0;}};classCircle:publicPoint{floatradius;public:Circle(floata=0,floatb=0,floatr=0):Point(a,b){radius=r;}floatarea(){return3.14*radius*radius;}};voidmain(){Circlec1(1,2,10);cout<<“圆面积=”<<c1.area()<<endl;cout<<“点面积=”<<c1.Point::area()<<endl;}继承方式━━公有继承(public)【例】(公有派生)注意:①A类中:voidA::show1(){cout<<x1<<y1<<z1<<endl;}√②B类中:voidB::show2(){cout<<x1<<y1<<z1<<x2<<y2<<z2<<endl;}可以为:voidB::show2(){show1();cout<<x2<<y2<<z2<<endl;}√③B类外:Bb1;cout<<b1.x1<<<<<<<<<<<<endl;继承方式━━保护继承(protected)【例】(保护派生)注意:①A类中:voidA::show1(){cout<<x1<<y1<<z1<<endl;}√②B类中:voidB::show2(){cout<<x1<<y1<<z1<<x2<<y2<<z2<<endl;}可以为:voidB::show2(){show1();cout<<x2<<y2<<z2<<endl;}√③B类外:Bb1;cout<<b1.x1<<<<<<<<<<<<endl;继承方式━━私有继承(private)【例】(私有派生)注意:①A类中:voidA::show1(){cout<<x1<<y1<<z1<<endl;}√②B类中:voidB::show2(){cout<<x1<<y1<<z1<<x2<<y2<<z2<<endl;}可以为:voidB::show2(){show1();cout<<x2<<y2<<z2<<endl;}√③B类外:Bb1;cout<<b1.x1<<<<<<<<<<<<endl;【例】(公有派生)#include<iostream.h>classA{intx;protected:inty;public:intz;A(inta=0,intb=0,intc=0){x=a;y=b;z=c;}voidsetx(inta){x=a;}voidsety(inta){y=a;}intgetx(){returnx;}intgety(){returny;}voidshowA(){cout<<“x=”<<x<<“\ty=”<<y<<“\tz=”<<z<<endl;}};classB:publicA{intlength,width;public:B(inta=0,intb=0,intc=0,intd=0,inte=0):A(a,b,c){length=d;width=e;}voidshowB(){cout<<“x=”<<getx()<<“\ty=”<<y<<“\tz=”<<z;cout<<“\tlength=”<<length;cout<<“\twidth=”<<width<<endl;}intsum(){return(getx()+y+z+length+width);}};voidmain(){Bb1(1,2,3,4,5);b1.showB();b1.showA();cout<<“sum=”<<b1.sum()<<“\tx=”;cout<<b1.getx()<<“\ty=”<<b1.gety();cout<<“\tz=”<<b1.z<<endl;}【例】(保护派生、私有派生)#include<iostream.h>classA{private:intx1;protected:inty1;public:intz1;A(inta=0,intb=0,intc=0){x1=a;y1=b;z1=c;}voidshowA(){cout<<“x1=”<<x1<<“\ty1=”<<y1<<“\tz1=”<<z1<<endl;}};classB:protecte