一、多态性(多态性的基本概念、虚函数和抽象类)
单选题20道:
1、下列关于虚函数的描述中,正确的是( )。
A:虚函数是一个static类型的成员函数
B:虚函数既可以是成员函数,以可以是非成员函数
C:基类中说明一个虚函数后,派生类中定义相同原型的函数可以不必加virtual说明
D:派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型
2、实现多态性的技术是( )。
A:抽象类
B:前期绑定
C:友元函数
D:动态绑定
3、下列关于虚函数的说明中,正确的是( )。
A:从虚基类继承的函数都是虚函数
B:虚函数不得是静态成员函数
C:只能通过指针或引用调用虚函数
D:抽象类中的成员函数都是虚函数
4、在派生类中重新定义虚函数时,除了( ),其他方面都应与基类中相应的虚函数保持一致。
A:函数名
B:参数
C:函数体
D:返回值类型
5、关于纯虚函数和抽象类的描述中,错误的是( )。
A:纯虚函数是一种特殊的虚函数,它没有具体的实现
B:抽象类是指具有纯虚函数的类
C:一个基类中说明有纯虚函数,该类的派生类一定不再是抽象类
D:抽象类作为基类来使用,其纯虚函数的实现由派生类给出
多态性与虚函数6、下面关于虚函数的描述,错误的是( )。
A:在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数
B:基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数
C:虚函数可以是另一个类的友元函数,但不能是静态成员函数
D:基类中说明的纯虚函数在其任何派生类中都必须实现
7、虚函数必须是类的( )。
A:友元函数
B:成员函数
C:构造函数
D:析构函数
8、多态性提高了系统的( )。
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:析构函数中调用虚函数采用静态联编
B:对虚析构函数的调用可以采用动态联编
C:当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D:构造函数可以声明为虚函数
14、抽象类不能定义对象,但可以声明抽象的( )。
A:指针或引用
B:函数返回类型
C:显式转换
D:以上都是
15、下列关于动态联编的描述中,错误的是( )。
A:动态联编是以虚函数为基础的
B:动态联编是在运行时确定所调用的函数代码的
C:动态联编调用函数操作是指向对象的指针或对象
D:动态联编是在编译时确定操作函数的
16、面向对象方法的多态性是指( )。
A:一个类可以派生出多个特殊类
B:一个对象在不同的运行环境中可以有不同的变体
C:针对一消息,不同的对象可以以适合自身的方式加以响应
D:一个对象可以是由多个其他对象组合而成的
17、以下( )成员函数表示纯虚函数。
A:virtual int vf(int);
B:void vf(int)=0;
C:virtual void vf()=0;
D:virtual void vf(int){}
18、下列描述中,( )是抽象类的特性。
A:可以说明虚函数
B:可以进行构造函数重载
C:可以定义友元函数
D:不能说明其对象
19、下面的描述中,正确的是( )。
A:virtual可以用来声明虚函数
B:含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类
C:即使基类的构造函数没有参数,派生类也必须建立构造函数
D:静态数据成员可以通过成员初始化列表来初始化
20、所谓多态性是指 ( )
A:不同的对象调用不同名称的函数
B:不同的对象调用相同名称的函数
C:一个对象调用不同名称的函数
D:一个对象调用不同名称的对象
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论