C++语言程序设计(下) 中国农业大学 单元测验8-2

1.下列哪种C++语法形式不属于多态?(    )

编号 选项
A 重载运算符
B 重载函数
C 对象多态
D 不同函数中定义的同名局部变量

2.为类ABC定义重载运算符“+”,下列哪种定义形式是正确的?(    )

编号 选项
A 定义为类ABC的函数成员:ABC operator +( ABC obj )  {  …  }
B 定义为类ABC的函数成员:ABC operator +( ABC obj1, ABC obj2 )  {  …  }
C 定义为类ABC的函数成员:void operator +( )  {  …  }
D 定义为类ABC的友元函数:ABC operator +( ABC obj )  {  …  }

3.下列关于Liskov准则的描述中,错误的是(    )。

编号 选项
A 派生类的对象可以初始化基类引用
B 派生类的对象不能赋值给基类对象
C 派生类对象的地址可以赋值给基类的对象指针
D 应用Liskov准则,实际上是将派生类对象当作基类对象来使用

4.定义如下的基类A和派生类B:

class A
{
public:
    virtual  void fun( )  // 函数成员fun被声明为虚函数
    {  cout << “A :: fun( ) called”;  }
};
class B : public A
{
public:
    void fun( )  // 重写虚函数成员fun
    {  cout << “B :: fun( ) called”;  }
};

执行下列代码:

A  *p;  // 定义基类A的对象指针p
B  bObj;  // 定义派生类B的对象bObj
p = &bObj;  // 将基类指针p指向派生类对象bObj
p->fun( );  // 通过基类指针p调用虚函数成员fun

通过基类指针p调用虚函数成员fun,将自动调用哪个函数?(    )

编号 选项
A B::fun( )
B 先调用A::fun( ),再调用B::fun( )
C 语法错误
D A::fun( )

5.下列关于对象多态性的描述中,错误的是(    )。

编号 选项
A 通过基类引用访问派生类对象的虚函数成员,将自动调用基类的函数成员
B 应用对象多态性的目的是为提高程序代码的可重用性
C 通过基类对象指针访问派生类对象的虚函数成员,将自动调用派生类的函数成员
D 应用对象多态性,实际上是用基类来代表派生类

6.下列关于虚函数的描述,错误的是(    )。

编号 选项
A 只有虚函数成员才会在调用时表现出多态性
B 类中的静态函数、构造函数、析构函数都可以是虚函数
C 声明虚函数需使用关键字virtual
D 基类中声明的虚函数成员被继承到派生类后仍是虚函数

7.下列关于纯虚函数的描述,错误的是(    )。

编号 选项
A 纯虚函数在实现之后就是一个正常的虚函数,会在调用时表现出多态性
B 定义纯虚函数的目的是为了重用其算法代码
C 含有纯虚函数成员的类被称为抽象类
D 纯虚函数没有函数体

8.下列关于抽象类的描述,错误的是(    )。

编号 选项
A 抽象类的派生类一定是抽象类
B 不能用抽象类定义对象,即抽象类不能实例化
C 可以用抽象类定义对象指针,指向其派生类对象
D 可以用抽象类定义对象引用,引用其派生类对象

9.下列关于多继承的描述,错误的是(    )。

编号 选项
A 多继承时,不同基类必须使用相同的继承方式
B 派生类可以从多个基类继承,这就是多继承
C 多继承会造成从不同基类所继承的成员之间互相重名
D 多继承时,派生类不能继承基类的构造和析构函数

10.派生类从基类A和B各继承了一个数据成员x。如需访问派生类对象obj中从基类A继承来的成员x,下列哪种访问形式是正确的?(    )

编号 选项
A obj.A.x
B obj.x
C obj.A::x
D obj.B::x
原创文章 63 获赞 23 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_33384402/article/details/105878121