#3693. 面向对象·三大特性(客观练习 17 题)

面向对象·三大特性(客观练习 17 题)

  1. 当多个类之间存在“is-a”关系时,应使用面向对象的( )特性。

{{ select(1) }}

  • 封装
  • 继承
  • 多态
  • 抽象
  1. 在 C++ 中,基类的析构函数通常应该声明为虚函数,其主要目的是( )。

{{ select(2) }}

  • 提高程序运行效率
  • 在通过基类指针删除派生类对象时,正确调用派生类析构函数
  • 减少内存占用
  • 使派生类对象能直接调用基类析构函数
  1. 在 C++ 中,派生类继承基类的方式包括 public、protected 和 private。若采用 public 继承,基类中的 private 成员在派生类中的访问权限为( )。

{{ select(3) }}

  • public
  • protected
  • private
  • 不可访问
  1. 在 C++ 中,关于重写(override)的说法正确的是( )。

{{ select(4) }}

  • 被重写的函数必须是虚函数
  • 重写函数与基类函数可以有不同的参数列表
  • 重写函数与基类函数可以有不同的返回类型
  • 只有 public 继承才能重写
  1. 下列关于 C++ 中多态的说法,正确的是( )。

{{ select(5) }}

  • 只有通过指针或引用调用虚函数才能体现运行时多态
  • 通过对象直接调用虚函数也能体现多态
  • 多态只能通过继承实现
  • 虚函数必须用 override 关键字
  1. 下面关于 C++ 类继承的说法,正确的是( )。

{{ select(6) }}

  • C++ 只支持单继承
  • C++ 只支持多继承
  • C++ 同时支持单继承和多继承
  • C++ 不支持继承
  1. 下面关于面向对象编程的“多态”说法,错误的是( )。

{{ select(7) }}

  • 多态分为编译时多态和运行时多态
  • 函数重载属于编译时多态
  • 虚函数属于运行时多态
  • 多态只能通过继承实现
  1. 在 C++ 中,若要在派生类中重写基类的一个成员函数,需要在基类中将该函数声明为( )。

{{ select(8) }}

  • virtual
  • static
  • const
  • inline
  1. 下列选项中,哪一个不属于多态的表现形式?( )

{{ select(9) }}

  • 函数重载
  • 运算符重载
  • 虚函数
  • 类模板
  1. 在 C++ 中,若要阻止类被继承,可以使用( )关键字。

{{ select(10) }}

  • final
  • override
  • static
  • const
  1. 在 C++ 中,关于多继承的说法,正确的是( )。

{{ select(11) }}

  • C++ 不支持多继承
  • C++ 支持多继承,但需要谨慎处理菱形继承问题
  • 多继承不会造成任何歧义
  • 多继承只能继承一个基类
  1. 在 C++ 中,关于 override 关键字的说法,正确的是( )。

{{ select(12) }}

  • override 表示必须重写基类的虚函数
  • override 可以用于非虚函数
  • override 与 final 不能同时使用
  • override 是 C++98 的关键字
  1. 关于 C++ 中类的继承,下列哪些说法是正确的?( )

{{ multiselect(13) }}

  • 子类可以继承父类的 public 成员
  • 子类不能访问父类的 private 成员
  • 子类可以重写父类的虚函数
  • C++ 支持多继承
  1. 关于 C++ 中的虚函数,下列哪些说法是正确的?( )

{{ multiselect(14) }}

  • 基类指针可以调用派生类的虚函数
  • 虚函数用于实现运行时多态
  • 构造函数可以是虚函数
  • 析构函数可以是虚函数
  1. C++ 中的继承支持单继承和多继承,但子类无法直接访问父类的私有成员。( )

{{ select(15) }}

  • 正确
  • 错误
  1. C++ 中的多态可以在编译时和运行时分别实现。( )

{{ select(16) }}

  • 正确
  • 错误
  1. 构造函数不能被继承,但析构函数可以被继承。( )

{{ select(17) }}

  • 正确
  • 错误