C++网络作业6问题详解

上传人:re****.1 文档编号:473244419 上传时间:2023-08-11 格式:DOC 页数:20 大小:70.50KB
返回 下载 相关 举报
C++网络作业6问题详解_第1页
第1页 / 共20页
C++网络作业6问题详解_第2页
第2页 / 共20页
C++网络作业6问题详解_第3页
第3页 / 共20页
C++网络作业6问题详解_第4页
第4页 / 共20页
C++网络作业6问题详解_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《C++网络作业6问题详解》由会员分享,可在线阅读,更多相关《C++网络作业6问题详解(20页珍藏版)》请在金锄头文库上搜索。

1、word作业4一、 选择题1 如下关于动态联编的描述中,错误的答案是_。D A)动态联编是以虚函数为根底的 B)动态联编是在运行时确定所调用的函数代码的 C)动态联编调用函数操作是指向对象的指针或对象引用D)动态联编是在编译时确定操作函数的注:先期联编也称静态联编,迟后联编也称动态联编。注释:动态联编一直要到程序运行时才能确定调用哪个函数。 虚函数是实现动态联编的必要条件之一。没有虚函数一定不能实现动态联编,但 有虚函数存在时,必须同时满足如下条件,才能够实现动态联编: 类之间满足子类型关系; 调用虚函数操作的是指向对象的指针或者对象引用:或者是由成员函数调用 虚函数。2 关于虚函数的描述中,

2、正确的答案是_。D A)虚函数是一个静态成员函数 B)虚函数是一个非成员函数 C)虚函数既可以在函数说明时定义,也可以在函数实现时定义D)派生类的虚函数与基类中对应的虚函数具有一样的参数个数和类型注释:虚函数是非静态的成员函数。它不能是友元函数,但可以在另一个类中被声明为友元函数。 虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的时候。 派生类的虚函数与基类中对应的虚函数必须满足如下条件,否如此派生类中的虚函数将丢失其虚特性,在调用时进展静态联编: 派生类中的虚函数与基类中的虚函数具有一样的名称: 派生类中的虚函数与基类中的虚函数具有一样的参数个数和一样的对应参数 类

3、型: 派生类中的虚函数与基类中的虚函数的返回值或者一样,或者都返回指针或 引用,并且派生类虚函数所返回的指针或引用的基类型是基类中的虚函数所 返回的指针或引用的基类型的子类型。3 在下面四个选项中,_是用来声明虚函数的。AA)virtual B)public C)using D)false注释:说明虚函数的一般格式如下: virtua1()4 对虚函数的调用_。D A)一定使用动态联编 B)必须使用动态联编C)一定使用静态联编 D)不一定使用动态联编注释:参见第1题的注释。5 实现运行时的多态性要使用_。DA)重载函数 B)构造函数 C)析构函数 D)虚函数注释:参见第1题的注释。6 要实现动

4、态联编,必须通过_调用虚函数。AA)对象指针 B)成员名限定 C)对象名 D)派生类名注释:参见第1题的注释。7 在派生类中重新定义虚函数时,除了_方面,其他方面都必须与基类中相应的虚函数保持一致。DA)参数个数 B)参数类型 C)函数名称 D)函数体注释:参见第2题的注释。8 下面关于构造函数和析构函数的描述,错误的答案是_。D A)析构函数中调用虚函数采用静态联编B)对虚析构函数的调用可以采用动态联编C)当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数D)构造函数可以声明为虚函数注释:构造函数不能声明为虚函数,但析构函数可以声明为虚函数。当基类的析构函数声明为虚函数时,无论派生

5、类是否使用virtual关键字说明,派生类的析构函数一定是虚函数,对缺省析构函数亦然。而且,如果满足动态联编的其他条件,对虚析构函数的调用将采用动态联编。 构造函数不能声明为虚函数,但在构造函数中可以调用虚函数。在构造函数或析构函数中调用虚函数,将采用静态联编。9 关于纯虚函数和抽象类的描述中,错误的答案是_。C A)纯虚函数是一种特殊的虚函数,它没有具体的实现B)抽象类是指具有纯虚函数的类C)一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出注释:带有纯虚函数的类称为抽象类。抽象类中的纯虚函数的实现由派生类给出: 但派生类仍可不

6、给出纯虚函数的定义,继续作为抽象类存在。10 如下描述中,_是抽象类的特性。D A)可以说明虚函数 B)可以进展构造函数重载C)可以定义友元函数 D)不能说明其对象注释:抽象类区别于其他类的最根本的特征是不能定义对象。11 _是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。 C A)虚析构函数 B)虚构造函数 C)纯虚函数 D)静态成员函数12 如果一个类至少有一个纯虚函数,那么就称该类为_。A A)抽象类 B)虚基类 C)派生类 D)以上都不对13 以下_成员函数表示纯虚函数。C A)virtualintvf(int); B)voidvf(int)=0

7、;C)virtualvoidvf()=0; D)virtualvoidvf(int)()注释:纯虚函数的声明格式如下: virtual()=0; 注意纯虚函数与虚函数体为空的区别。纯虚函数根本就没有函数体,而空的虚 函数的函数体为空:前者所在的类是抽象类,不能直接进展实例化,而后者所在的 类是可以实例化的:14 下面的描述中,正确的答案是_。A A)virtual可以用来声明虚函数B)含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类C)即使基类的构造函数没有参数,派生类也必须建立构造函数D)静态数据成员可以通过成员初始化列表来初始化注释:virtual关键字既可以用来声明虚基类,也可以用

8、来声明虚函数。 含有纯虚函数的类是抽象类,它不能用来定义对象。 静态数据成员的初始化必须在类体外进展。 如果所有的基类和子对象构造函数都不需要参数,派生类也不需要参数时,派生类构造函数可以不定义。15 在下面程序中,A、B、C、D四句编译时不会出现错误的答案是_。A #includeclass Base public:Base() Base(int c): count(c) virtual void print() const=0;private:int count;class Derived: public Basepublic:Derived() :Base(0 ) Derived(int

9、 c): Base(c) void print()const coutDerivedendl; ;void main()Derived d(10);Base *pb;pb=&d; /ABase & cb=d;Derived dd=*pb;Derived &cd=cb; /CBase bb=d; /D注释:B和C处不符合赋值兼容规如此。D处出错是因为Base是含有纯虚函数的抽象类,不能建立抽象类的对象。 16 在下面程序中,A,B、C、D四句编译时出现错误的答案是_。C class A /A public: /BA( ) func(); /Cvirtual voidfunc()=0; /D;注释

10、:构造函数中不能调用纯虚函数,但可以调用虚函数。17 分析下面的程序,正确的输出结果是_B#include #include class Basepublic:virtual char *fun() const=0;char* Base:fun() const return “Base; class Derivedl1: virtual public Basepublic:char* fun() const return Derived11; ;class Derivedl2: virtual public Basepublic:char* fun() const return Derived

11、l2; ;class Derived2: public Derivedl1,public Derivedl2public:char* fun() constchar *ptr;ptr=new charstrlen(Derivedl1:fun()+strlen(Derivedl2:fun()+l;strcpy(ptr,Derived11:fun(),strcat(ptr,Derived12:fun();return ptr;void main()Base *pb;pb=new Derived11;coutfun()endl;pb=new Derivedl2;coutfun()endl;pb=ne

12、w Derived2;coutfun()endl;A) B)Base Derivedl1Base Derivedl2Base Derivedl1Derivedl2C) D)Derivedl1Derivedl2Derivedl1Derivedl2Derivedl1Derivedl2Derivedl1Derivedl2注释:参见第1题、第2题的注释。派生类Derivedll、Derivedl2和Derived2中的函数fun与基类Base中的虚函数fun的函数名、参数表和返回类型都完全一样,因此这三个类中的fun函数也是虚函数,对fun函数的调用采用动态联编。二、填空题1 动态联编中直到_程序运行

13、_时才能确定调用哪个函数;而静态联编如此是在_程序编译时进展的。注释:动态联编与静态联编的概念。2 静态联编所支持的多态性称为_编译时的_多态性,动态联编所支持的多态性如此称为_运行时的_多态性,动态多态性由_虚函数_来支持。注释:在C+中,多态性的实现和联编有关。3 对虚函数使用对象指针或引用调用,系统使用_动态_联编;使用对象调用时系统使用_静态_联编。注释:参见选择填空第1题、第5题的注释。4 动态联编是在_虚函数_的支持下实现的,它通过_指针或引用来调用该函数操作。5 在一个成员函数内调用一个虚函数时,对该虚函数的调用进展_动态_联编。6 在析构函数中调用虚函数时,采用_静态_联编。7 C+中_不支持_虚构造函数,但_支持_虚析构函数。注释:参见选择填空第8题的注释。多态是不同的对象对同一消息有不同的行为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号