判断题:
1-1
虚函数是用virtual 关键字说明的成员函数。( T )
1-2
因为静态成员函数不能是虚函数,所以它们不能实现多态。( T )
1-3
将构造函数说明为纯虚函数是没有意义的。( T )
1-4
抽象类是指一些没有说明对象的类。( F )
1-5
包含纯虚函数的类叫抽象类。( T )
单选题:
2-1
关于动态绑定的下列描述中,( D )是错误的。
A.动态绑定是以虚函数为基础的
B.动态绑定在运行时确定所调用的函数代码
C.动态绑定调用函数操作是通过指向对象的指针或对象引用来实现的
D.动态绑定是在编译时确定操作函数的
2-2
关于虚函数的描述中,( C )是正确的。
A.虚函数是一个static 类型的成员函数
B.虚函数是一个非成员函数
C.基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数
D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型
2-3
关于纯虚函数和抽象类的描述中,( C )是错误的。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类
D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
2-4
下列描述中,( D )是抽象类的特性。
A.可以说明虚函数
B.可以进行构造函数重载
C.可以定义友元函数
D.不能定义该类对象
2-5
设有如下代码段:
class A {
public:
void func1() {
cout << "A1" << endl;
}
virtual void func2() {
cout << "A2" << endl;
}
};
class B : public A {
public:
void func1() {
cout << "B1" << endl;
}
void func2() {
cout << "B2" << endl;
}
};
int main() {
A *a = new B;
a->func1();
a->func2();
}
则输出结果为 ( B )
A.A1 A2
B.A1 B2
C.B1 A2
D.B1 B2
2-6
关于虚函数,正确的描述是( A )。
A.构造函数不能是虚函数
B.析构函数不能是虚函数
C.虚函数可以是友元函数
D.虚函数可以是静态成员函数
2-7
如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是( C )。
A.virtual show()=0;
B.virtual void show();
C.virtual void show()=0;
D.void show()=0 virtual;
2-8
不列哪一项不是动态联编实现的条件? ( D )
A.要有说明的虚函数
B.调用虚函数操作的是指向对象的指针
C.调用虚函数操作的是对象引用
D.由对象调用虚函数