C++题目作业14.doc_第1页
C++题目作业14.doc_第2页
C++题目作业14.doc_第3页
C++题目作业14.doc_第4页
C++题目作业14.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HZAU-专业C+作业14(继承与多态性)判断题窗体顶端1.派生类的构造函数的初始化列表中如果不写对基类构造函数的调用,则自动调用基类的拷贝构造函数。f2.在多继承情况下,派生类的构造函数中基类构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。TTrueFalse3.一个派生类不能作为基类被别的派生类继承。FTrueFalse4.派生类的继承方式中有两种:公有继承和私有继承。FTrueFalse5.在私有继承中,基类中只有公有成员对派生类是可见的。FTrueFalse6.构造函数可以被继承。FTrueFalse7.在公有继承中,基类的成员在派生类中都可以直接使用。FTrueFalse8.解决多继承下二义性问题的方法之一是使用作用域运算符。TTrueFalse9.派生类中至少包含了它的所有基类的成员,在这些成员中可能有的是不可访问。TTrueFalse10.虚函数是支持编译时的多态性。TTrueFalse11.在C+中,要实现动态联编,可以使用基类指针调用虚函数。tTrueFalse12.在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数返回值部分相同。fTrueFalse13.抽象类只能作为基类使用,其纯虚函数的实现由派生类来完成。tTrueFalse14.运算符重载只可以是类的成员函数和友元函数,不可以是普通函数。tTrueFalse15.静态联编和动态联编都是在编译时进行的,二者的区别仅是前者对非虚函数,后者对虚函数。tTrueFalse16.动态联编指的是在运行期间来选择不同类的虚函数t。TrueFalse17.一个抽象类中可以包含有多个纯虚函数,一个派生类中也可以包含多个虚函数。tTrueFalse18.如果派生类没有实现虚函数,那么它将使用他的基类的虚函数。tTrueFalse19.含有纯虚函数的类称为抽象类,与抽象类相对应的是具体类。tTrueFalse20.析构函数可以说明为虚函数,而构造函数说明为虚函数没有意义t。TrueFalse选择题窗体顶端1.C+语言建立类族是通过( )实现的。 A. 类的嵌套B. 虚函数C. 类的继承D. 抽象类2.下列对基类和派生类关系的描述中,错误的是( )。 A. 派生类是基类的具体化B. 派生类是基类的子集C. 派生类是基类定义的延续D. 派生类是基类的组合3.下列对派生类的描述中,错误的是( )。 A. 一个派生类可以作为另一个派生类的基类B. 派生类至少有一个基类C. 派生类的缺省继承方式是privateD. 派生类只继承了基类的公有成员和保护成员4.下列说法中错误的是( )。 A. 公有继承时基类中的public成员在派生类中仍是public的B. 公有继承时基类中的private成员在派生类中仍是private的C. 私有继承时基类中的public成员在派生类中是private的D. 保护继承时基类中的public成员在派生类中是protected的5.下面叙述错误的是( )。 A. 对基类成员的访问能力在private派生类中和public派生类中是相同的B. 基类的private成员在public派生类中不可访问C. 基类中的public成员在protected派生类中是protected的D. 基类中的public成员在protected派生类中仍然是public的6.多继承的构造顺序可分为如下4步。 所有非虚基类的构造函数按照它们被继承的顺序构造;所有虚基类的构造函数按照它们被继承的顺序构造; 所有子对象的构造函数按照它们声明的顺序构造; 派生类自己的构造函数体;这4个步骤的正确顺序是( )。 A. B. C. D. 7.下列虚基类的声明中,正确的是( )。 A. class virtual B: public AB. virtual class B: public AC. class B: public A virtualD. class B: virtual class A8.下面( )的叙述不符合赋值兼容规则。 A. 派生类的对象可以赋值给基类的对象B. 基类的对象可以赋值给派生类的对象C. 派生类的对象可以初始化基类的引用D. 派生类的对象的地址可以赋值给指向基类的指针9.对于虚函数定义的调用( )。 A. 一定使用动态联编B. 一定使用静态联编C. 必须使用动态联编D. 不一定使用动态联编10.下列描述中,( )是抽象类的特征。 A. 可以说明虚函数B. 可以定义友元函数C. 可以进行构造函数D. 不能说明其对象11.关于纯虚函数和抽象类的描述中,错误的是( )。 A. 纯虚函数是一种特殊的虚函数,它没有具体的实现B. 抽象类是指具有纯虚函数的类C. 一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类D. 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出12.如果一个类至少有一个纯虚函数,那么就称该类为( )。 A. 抽象类B. 虚基类C. 派生类D. 以上都不对13.以下( )成员函数表示纯虚函数。 A. virtual int vf(int);B. void vf(int)=0;C. virtual void vf()=0;D. virtual void vf(int) 14.一个类的层次结构中,定义有虚函数,并且都是公有继承,在下列情况下,实现动态联编的是( )。 A. 使用类的对象调用虚函数B. 使用类名限定调用虚函数,其格式如下::C. 使用构造函数调用虚函数D. 使用成员函数调用虚函数15.下列关于动态联编的描述中,错误的是( )。 A. 动态联编是函数联编的一种方式,它是在运行时来选择联编函数的B. 动态联编又可称为动态多态性,它是C+语言中多态性的一种重要形式C. 函数重载和运算符重载都属于动态联编D. 动态联编只是用来选择虚函数的程序设计题1. (5分)点-圆类(虚函数)题目描述下面是点-圆类层次继承中的虚函数,请填空补充完成下列程序。#includeusing namespace std;class Pointfloat x,y;public:Point()Point( (1) )x=a;y=b;(2) double area()return 0.0;( 3 )double Pi=3.141593;class Circle:public Pointprivate:double Radius;public:Circle(double r)(4) ;virtual double area()return Pi*Radius*Radius;int main()Circle c(1);coutc.area();return 0;输入描述无输出描述略输入样例无输出样例3.14159窗体底端2. (5分)时间类相加题目描述下面是将加法运算符(+)重载为友元函数的应用,该运算符实现时间类的加法运算,请完成下列程序。#includeusing namespace std;class angle(1)hours,mins,secs;public:angle()(2)(int h,int m,int s)hours=h;mins=m;secs=s;void show()couttime is: hours:mins:secsendl;(3) angle operator+(angle &p1,angle &p2)angle temp;temp.secs=(p1.secs+p2.secs)%60;temp.mins=(p1.secs+p2.secs)/60+p1.mins+p2.mins)%60;temp.hours=(p1.secs+p2.secs)/60+p1.mins+p2.mins)/60;(4) ;return temp;int main()angle a(12,2,53),b(15,2,54);a=a+b;a.show();return 0;输入描述无输出描述略输入样例无输出样例time is: 3:5:47窗体顶端窗体底端3. (5分)虚函数实现多态性题目描述下面程序是虚函数实现多态性,请完成下列程序。#includeusing namespace std;(1) petpublic:(2)void speak()couthow does a pet speak?endl;class cat:public petpublic:virtual void speak()coutmiao!miao!endl;class dog:public petpublic:virtual (3) speak()coutwang!wang!endl;int main()pet p;p.speak();cat c;c.speak();dog d;d.speak();return 0;输入描述无输出描述略输入样例无输出样例how does a pet speak?miao!miao!wang!wang!窗体顶端窗体底端4. (3分)继承-虚函数题目描述在下面程序的横线处填上适当的内容,使程序执行后的输出结果为9SS9S。#includeusing namespace std;class A(1) a;public:A():a(9)(2) void print() constcouta;class B:public Achar b;public:B() (3);void print()constcoutprint();show(d1);show(d2);return 0;输入描述无输出描述略输入样例无输出样例9SS9S窗体顶端窗体底端5. (3分)虚函数-程序填空题目描述在下面程序的横线处填上适当的内容,使程序执行后的输出结果为25。#includeusing namespace std;class basepublic:int n;base((1))n=x;virtual void set(int m)n=m;coutn;class deriveA:public basepublic:deriveA(int x):base(x)void set(int m)(2);coutn;class deriveB:(3) basepublic:deriveB(int x):base(x)void set(int m)n+=m;coutset(1);pbase=&d2;(4) ;return 0;输入描述无输出描述略输入样例无输出样例25窗体顶端窗体底端6. (5分)汽车类题目描述一个汽车类Vehicle,包含数据成员制造商manufacturer、生产年份produce_year、价格price。从vehicle.类派生出小汽车类car,car类中新增加载客量passenger_load。请完成些列程序。#include#includeusing namespace std;class Vehicleprotected:string manufacturer;int produce_year,price;public:Vehicle(string m,int pro,int pri)manufacturer=m;produce_year=pro;(1) ;void display()coutmanufacturer:manufacturerendl;coutproduce year:produce_yearendl;coutprice:priceendl;(2) :public Vehicleprivate:int passenger_load;(3) :Car(string m,int pro,int pri,int pa):Vehicle(m,pro,pri)passenger_load=pa;(4)coutCar information:endl;Vehicle:display();coutpassenger load:passenger_loadpassengersendlendl;int main()Car c(yiqi,2005,100000,5);c.display();return 0;输入描述无输出描述略输入样例无输出样例Car information:manufacturer:yiqiproduce year:2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论