一、选择题
1、下列关于动态联编的描述中,错误的是(D)。
A.动态联编是以虚函数为基础
B.动态联编是运行时确定所调用的函数代码的
C.动态联编调用函数操作是指向对象的指针或对象引用
D.动态联编是在编译时确定操作函数的
3、在派生类中重新定义虚函数时必须在(A,B,E)方面与基类保持一致。(多选题)
A.参数个数 B.参数类型 C.参数名字 D.操作内容 E.返回类型
5、C++类体系中,能被派生类继承的是(B)。
A.构造函数 B.虚函数 C.析构函数 D.友元函数
6、关于虚函数的描述中,正确的是(D)。
A.虚函数是一个静态成员函数
B.虚函数是一个非成员函数
C.虚函数即可以在函数说明定义,也可以在函数实现时定义
D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型
7、下面4个选项中,(A)是用来声明虚函数的。
A.virtual B.public C.using D.false
8、编译时的多态性可以通过使用( B )获得。
A.虚函数和指针 B.重载函数和析构函数 C.虚函数和对象 D.虚函数和引用
9、关于纯虚函数和抽象类的描述中,错误的是( C )。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类中声明有纯虚函数,该基类派生类一定不再是抽象类
D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
10、下列描述中,( D )是抽象类的特征。
A.可以声明虚函数 B.可以进行构造函数重载 C.可以定义友元函数 D.不能声明其对象
11、以下( C )成员函数表示虚函数。
A.virtual int vf(int);B.void vf(int)=0;C.virtual void vf()=0; D.virtual void vf(int) { };
12、如果一个类至少有一个纯虚函数,那么就称该类为( A)。
A.抽象类 B.虚函数 C.派生类 D.以上都不对
13、要实现动态联编,必须通过(A)调用虚函数。
A.对象指针 B.成员名限定 C.对象名 D.派生类名
14、下面描述中,正确的是(A,B,)。
A.virtual可以用来声明虚函数
B.含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类
C.即使基类的构造函数没有参数,派生类也必须建立构造函数
D.静态数据成员可以通过成员初始化列表来初始化
二、写出下列程序的输出结果。
1、分析下列程序的输出结果。
#include <iostream>
using std::endl;
using std::cout;
class A
{
public:
A()
{
cout << "A's cons." << endl;
}
virtual
~A()
{
cout << "A's des." << endl;
}
virtual
void f()
{
cout<<"