#3693. 面向对象·三大特性(客观练习 17 题)
面向对象·三大特性(客观练习 17 题)
- 当多个类之间存在“is-a”关系时,应使用面向对象的( )特性。
{{ select(1) }}
- 封装
- 继承
- 多态
- 抽象
- 在 C++ 中,基类的析构函数通常应该声明为虚函数,其主要目的是( )。
{{ select(2) }}
- 提高程序运行效率
- 在通过基类指针删除派生类对象时,正确调用派生类析构函数
- 减少内存占用
- 使派生类对象能直接调用基类析构函数
- 在 C++ 中,派生类继承基类的方式包括 public、protected 和 private。若采用 public 继承,基类中的 private 成员在派生类中的访问权限为( )。
{{ select(3) }}
- public
- protected
- private
- 不可访问
- 在 C++ 中,关于重写(override)的说法正确的是( )。
{{ select(4) }}
- 被重写的函数必须是虚函数
- 重写函数与基类函数可以有不同的参数列表
- 重写函数与基类函数可以有不同的返回类型
- 只有 public 继承才能重写
- 下列关于 C++ 中多态的说法,正确的是( )。
{{ select(5) }}
- 只有通过指针或引用调用虚函数才能体现运行时多态
- 通过对象直接调用虚函数也能体现多态
- 多态只能通过继承实现
- 虚函数必须用 override 关键字
- 下面关于 C++ 类继承的说法,正确的是( )。
{{ select(6) }}
- C++ 只支持单继承
- C++ 只支持多继承
- C++ 同时支持单继承和多继承
- C++ 不支持继承
- 下面关于面向对象编程的“多态”说法,错误的是( )。
{{ select(7) }}
- 多态分为编译时多态和运行时多态
- 函数重载属于编译时多态
- 虚函数属于运行时多态
- 多态只能通过继承实现
- 在 C++ 中,若要在派生类中重写基类的一个成员函数,需要在基类中将该函数声明为( )。
{{ select(8) }}
- virtual
- static
- const
- inline
- 下列选项中,哪一个不属于多态的表现形式?( )
{{ select(9) }}
- 函数重载
- 运算符重载
- 虚函数
- 类模板
- 在 C++ 中,若要阻止类被继承,可以使用( )关键字。
{{ select(10) }}
- final
- override
- static
- const
- 在 C++ 中,关于多继承的说法,正确的是( )。
{{ select(11) }}
- C++ 不支持多继承
- C++ 支持多继承,但需要谨慎处理菱形继承问题
- 多继承不会造成任何歧义
- 多继承只能继承一个基类
- 在 C++ 中,关于
override关键字的说法,正确的是( )。
{{ select(12) }}
- override 表示必须重写基类的虚函数
- override 可以用于非虚函数
- override 与 final 不能同时使用
- override 是 C++98 的关键字
- 关于 C++ 中类的继承,下列哪些说法是正确的?( )
{{ multiselect(13) }}
- 子类可以继承父类的 public 成员
- 子类不能访问父类的 private 成员
- 子类可以重写父类的虚函数
- C++ 支持多继承
- 关于 C++ 中的虚函数,下列哪些说法是正确的?( )
{{ multiselect(14) }}
- 基类指针可以调用派生类的虚函数
- 虚函数用于实现运行时多态
- 构造函数可以是虚函数
- 析构函数可以是虚函数
- C++ 中的继承支持单继承和多继承,但子类无法直接访问父类的私有成员。( )
{{ select(15) }}
- 正确
- 错误
- C++ 中的多态可以在编译时和运行时分别实现。( )
{{ select(16) }}
- 正确
- 错误
- 构造函数不能被继承,但析构函数可以被继承。( )
{{ select(17) }}
- 正确
- 错误