继承和派生习题与解析ppt课件

返回 举报
资源描述
严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。继承和派生习题与解析n1 分析以下程序的执行结果#includeclass base public:base()coutconstructing base classendl;base()coutdestructing base classendl;class subs:public base public:subs()coutconstructing sub classendl;subs()coutdestructing sub classendl;void main()subs s;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n解:本题说明单继承情况下构造函数和析构函数的调用顺序。这里base为基类,subs为派生类。所以输出为:constructing base class constructing sub class destructing sub class destrcuting base class注意:在单继承情况下,首先调用基类的构造函数,随后调用派生类的构造函数,析构函数的调用顺序则正好相反。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n2 分析以下程序的执行结果:#includeclass base int n;public:base(int a)coutconstructing base classendl;n=a;coutn=nendl;base()coutdestructing base classendl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class subs:public base base bobj;int m;public:subs(int a,int b,int c):base(a),bobj(c)coutconstructing sub cassendl;m=b;coutm=mendl;subs()coutdestructing sub classendl;void main()subs s(1,2,3);严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n解:本题说明 派生类中含有对象成员情况下构造函数和析构函数的调用顺序。这里base为基类,subs为派生类,subs类的构造函数中含有对象成员。所以输出为:constrcuting base class n=1 constructing base class n=3 constructing sub class m=2 destructing sub class destructing base class destructing base class注意:当派生类中含有对象成员时,构造函数的调用顺序如下:1)基类的构造函数2)对象成员的构造函数3)派生类的构造函数析构函数的调用顺序与之相反严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n3 分析以下程序的执行结果#includeclass A public:int n;class B:public A;class C:public A;class D:public B,public C int getn()return B:n;void main()D d;d.B:n=10;d.C:n=20;coutd.B:n,d.C:nendl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n解:D类是从类B和类C派生的,而类B和类C又都是从类A派生的,但各有自己的副本。所以对于对象d,d.B:n与d.C:n是两个不同的数据成员它们互无联系。所以输出为:10,20 严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。4 分析以下程序的执行结果#includeclass A public:int n;class B:virtual public A;class C:virtual public A;class D:public B,public C int getn()return B:n;void main()D d;d.B:n=10;d.C:n=20;coutd.B:n,d.C:nendl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n解:D类是从类B和类C派生的,而类B和类C又都是从类A派生,但这是虚继承关系即是虚基类因此和共用一个的副本所以对于对象d,d.B:n与d.C:n是一个成员。所以输出为:20,20 严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n5 假设图书馆的图书包含书名、编号作者属性读者饮包含姓名和借书证属性每位读者最多可借5本书,编写程序列出某读者的借书情况。解:设计一个类,从它派生出胃病书类book和读者类reader,在reader类中有一个rentbook()成员函数用于借阅图书。程序代码如下:严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。#include#includeclass object char name20;int no;public:object()object(char na,int n)strcpy(name,na);no=n;void show()coutname(no);严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class book:public object char author10;public:book()book(char na,int n,char auth):object(na,n)strcpy(author,auth);void showbook()show();cout作者:author;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class reader:public object book rent5;int top;public:reader(char na,int n):object(na,n)top=0;void rentbook(book&b)renttop=b;top+;void showreader()cout读者:;show();coutendl所借图书:endl;for(int i=0;itop;i+)cout i+1:;/5个空格 renti.show();coutendl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。void main()book b1(“C语言”,100,“谭浩强”),b2(“数据结构”,110,“严蔚敏”);reader r1(“王华”,1234);r1.rentbook(b1);r1.rentbook(b2);r1.showreader();n本程序的执行结果如下:读者王华(1234)所借图书:1:C语言(100)2:数据结构(110)严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n6 编写一个程序设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车重weight。小车类car是它的私有派生类其中包含载人数passenger_load。卡车类truck是vehicle的私有派生类其中包含载人数passenger_load和载重量payload,每个类都有相关数据的输出方法。解:vehicle类是基类由它派生出car类和truck类将公共的属性和方法放在vehicle类中。本题程序如下:严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。#includeclass vehicle /定义汽车类 protected:int wheels;/车轮数 float weight;/重量 public:vehicle(int wheels,float weight);int get_wheels();float get_weight();void show();class car:private vehicle /定义小车类 int passenger_load;/载人数 public:car(int wheels,float weight,int passengers=4);int get_passengers();void show();严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class truck:private vehicle /定义卡车类 int passenger_load;/载人数 float payload;/载重量 public:truck(int wheels,float weight,int passengers=2,float max_load=24000.00);int get_passengers();float efficiency();void show();vehicle:vehicle(int wheels,float weight)vehicle:wheels=wheels;vehicle:weight=weight;int vehicle:get_wheels()return wheels;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。float vehicle:get_weight()return weight/wheels;void vehicle:show()cout 车轮:wheels 个 endl;cout 重量:weight 公斤 endl;car:car(int wheels,float weight,int passengers):vehicle(wheels,weight)passenger_load=passengers;int car:get_passengers()return passenger_load;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。void car:show()cout 车型:小车 endl;vehicle:show();cout 载人:passenger_load 人 endl;cout endl;truck:truck(int wheels,float weight,int passengers,float max_load):vehicle(wheels,weight)passenger_load=passengers;payload=max_load;int truck:get_passengers()return passenger_load;float truck:efficiency()return payload/(payload+weight);严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。void truck:show()cout 车型:卡车 endl;vehicle:show();cout 载人:passenger_load 人 endl;cout 效率:efficiency()endl;cout endl;void main()car car1(4,2000,5);truck tru1(10,8000,3,340000);cout 输出结果 endl;car1.show();tru1.show();严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n输出结果 车型:小车 车轮:4个 重量:2000公斤 载人:5人 车型:卡车 车轮:10个 重量:8000公斤 载人:3人 效率:0977012严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n7 设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生的,要求输出一个圆桌的高度、面积和颜色等数据。解:circle类包含私有数据成员radius和求圆面积的成员函数getarea();table类包含私有数据成员height和返回高度的成员函数getheight()。roundtable类继承所有上述类的数据成员和成员函数,添加了私有数据成员color和相应的成员函数。本题程序如下:严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。#include#includeclass circle double radius;public:circle(double r)radius=r;double getarea()return radius*radius*3.14;class table double height;public:table(double h)height=h;double getheight()return height;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class roundtable:public table,public circle char*color;public:roundtable(double h,double r,char c):circle(r),table(h)color=new charstrlen(c)+1;strcpy(color,c);char*getcolor()return color;void main()roundtable rt(0.8,1.2,黑色);cout 圆桌属性数据:endl;cout 高度:rt.getheight()米 endl;cout 面积:rt.getarea()平方米 endl;cout 颜色:rt.getcolor()endl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n本程序的执行结果如下:圆桌属性数据:高度:08米 面积:45216平方米 颜色:黑色严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n8 设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数,由它派生出领导类leader,包含职务和部门私有数据成员以及相关的成员函数。再由base派 生出工程师类engineer,包含职称和专业私有数据成员以及相关的成员函数。然后由leader和engineer类派生出主任工程师类chairman。采用一些数据进行测试。解:由于chairman类从leader类和engineer类派生,而leader类和engineer类都是从base类派生的,所以为了使base只存一个副本,必须采用虚拟派生的方法。本题程序如下:严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。#include#includeclass base /基类 char*name;/姓名 int age;/年龄public:base()void setname(char na)name=new charstrlen(na)+1;strcpy(name,na);void setage(int a)age=a;char*getname()return name;int getage()return age;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class leader:virtual public base /领导类 char*job;/职务 char*dep;/部门public:leader()void setjob(char jb)job=new charstrlen(jb)+1;strcpy(job,jb);void setdep(char dp)dep=new char strlen(dp)+1;strcpy(dep,dp);char*getjob()return job;char*getdep()return dep;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class engineer:virtual public base /工程师类 char*major;/专业 char*prof;/职称public:engineer()void setmajor(char maj)major=new charstrlen(maj)+1;strcpy(major,maj);void setprof(char pf)prof=new charstrlen(pf)+1;strcpy(prof,pf);char*getmajor()return major;char*getprof()return prof;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class chairman:public leader,public engineer /主任工程师类 ;void main()chairman c;c.setname(李明);c.setage(42);c.setjob(处长);c.setdep(设计处);c.setmajor(电站锅炉设计);c.setprof(高级工程师);cout 输出结果:endl;cout c.getname(),年龄 c.getage()岁,担任 c.getdep()c.getjob(),endl;cout c.getprof(),从事 c.getmajor()专业 。endl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n本程序的执行结果如下:输出结果:李明,年龄42岁,担任设计处处长,高级工程师,从事电站锅炉设计专业。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n1.分析以下程序的执行结果:#include class base int n;public:base();base(int a)cout constructing base class endl;n=a;cout n=n endl;base()cout destructing base class endl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class subs:public base int m;public:subs(int a,int b):base(a)cout constructing sub class endl;m=b;cout m=m endl;subs()cout destructing sub class endl;void main()subs s(1,2);严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。解:这里base 是基类,subs为派生类,subs类的构造函数中含有调用基本类的构造函数。所以输出为:constructing base class n=1 constructing sub class n=2 destructing base class destructing sub class严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。12.分析以下程序的执行结果:#include class Sampleprotected:int x;public:Sample()x=0;Sample(int val)x=val;void operator+()x+;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class Derived:public Sample int y;public:Derived():Sample()y=0;Derived(int val1,int val2):Sample(val1)y=val2;void operator-()x-;y-;void disp()coutx=x y=y endl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。void main()Derived d(3,5);d.disp();d+;d.disp();d-;d-;d.disp();解:输出为:x=3,y=5x=4,y=5x=2,y=3严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。3 分析以下程序的执行结果:#include class A int a;public:A(int i)a=i;cout constructing class A endl;void print()cout a endl;A()cout destructing class A endl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class B1:public A int bl;public:B1(int i,int j):A(i)bl=j;cout constructing class B1 endl;void print()A:print();cout bl endl;B1()cout destructing class B1 endl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class B2:public A int b2;public:B2(int i,int j):A(i)b2=j;cout constructing class B2 endl;void print()A:print();cout b2 endl;B2()cout destructing class B2 endl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class C:public B1,public B2 int c;public:C(int i,int j,int k,int l,int m):B1(i,j),B2(k,l),c(m)cout constructing class C endl;void print()B1:print();B2:print();cout c endl;C()cout destructing class C endl;void main()C c1(1,2,3,4,5);c1.print();严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。解:C类是从B1类和B2类派生的,而B1和B2类又都是从A类派生,但各有自己的副本,所有这些成员函数均有print()成员函数。所以,在C的成员函数实现中,调用print()时,要加上类作用域运算符“:”。所以输出为:constructing class Aconstructing class B1constructing class Aconstructing class B2constructing class C12345destructing class Cdestructing class B2destructing class Adestructing class B1destructing class A严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。n4 分析以下程序执行结果:#include class Apublic:A(char*s)cout s endl;A();class B:public Apublic:B(char*sl,char*s2):A(sl)cout s2 endl;严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。class C:public Apublic:C(char*sl,char*s2):A(sl)cout s2 endl;class D:public B,public Cpublic:D(char*sl,char*s2,char*s3,char*s4):B(sl,s2),C(sl,s3)cout s4 endl;main()D d(class A,class B,class C,class D);严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。解:D类是从B和C类派生的,而B和C类又都是从A类派生,但各有自己的副本。所以输出为:class Aclass Bclass Aclass Cclass D
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
相关搜索

当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!