【期末不挂科-C++考前速过系列P2】大二C++第2次过程考核(20道选择题&10道判断题&3道代码题)【解析,注释】

本文详细介绍了C++中的虚函数、继承、抽象类、多态、模板等概念,包括虚基类、抽象类特征、继承的传递性、多态调用、构造函数、派生类对象的访问权限,以及如何通过实例演示计算形状体积和使用函数模板。同时,还展示了如何设计和使用Cpoint和CRectangle类及其派生类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

大家好吖,欢迎来到 YY 滴C++前速过系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
主要内容含:
在这里插入图片描述

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

  • 更加详细和全面的C++知识讲解——>可关注 YY的《C++》专栏
  • 此系列主打期末复习速过,一些基本知识点会略过(例如虚函数具体原理等等)

一.单选题(20)

1.下列虚类的声明中正确的是( )D
A.class virtual B:public A
B.virtual class B:public A
C.class B:public A virtual
D.class B:virtual public A

2.基类中的( )不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。D
A.共有成员
B.私有成员
C.私有成员函数
D.保护成员

3.设置虚基类的目的是()。B
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码

解析:

  • 在多继承中,如果在多条继承路径上,有公共基类,这个公共基类便会产生多个副本。为了解决二义性问题,把公共基类定义为虚基类

4.如果try中不抛出异常,那么try块执行完后控制权会转向何处?A
A.catch后第一条语句
B.catch语句块第一条语句
C.throw语句
D.退出程序

解析:

  • 如果try块中的代码没有抛出异常,则立即跳过try块后面的所有catch异常处理程序,执行catch后面的第一条语句

5.下列描述中,( )是抽象类的特征
A.可以说明虚函数
B.可以进行构造函数重载
C.可以定义友元
D.不能定义其对象

解析:D

6.C++中类的用途有两种:一种是类的实例化,即生成类的对象;另一种是通过( )派生出新类。B
A.复用
B.继承
C.封装
D.引用

7.继承具有( ),即当基类本身也是某一类的派生类时,底层的派生类也会自动继承间接基类的成员。B
A.规律性
B.传递性
C.多样性
D.重复性

8.下面的4个关键字中,( )是用来说明虚函数的。A
A.virtual
B.public
C.protected
D.private

9.如果一个类至少有一个纯虚函数,那么该类称为( )。C
A.虚基类
B.派生类
C.抽象类
D.组合类

10.设有基类定义:
class Base

{

private:int a;

protected: int b;

public: int c;

};

派生类采用( )继承方式可以使成员变量b成为自己的私有成员。C
A.公有继承
B.保护继承
C.私有继承
D.私有,保护,共有,均可

11.类模板的模板参数( )D
A.只可作为数据成员的类型
B.只可作为成员的返回值类型
C.只可作为成员函数的参数类型
D.可作为数据成员的类型、成员的返回值类型或成员函数的参数类型

12.多态调用是指( )。D
A.以任何方式调用一个虚函数
B.以任何方式调用一个纯虚函数
C.借助于指向对象的基类指针或引用调用一个虚函数
D.借助于指向对象的基类指针或引用调用一个纯虚函数

13.在公有public派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( )。C
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中成员
D.派生类的对象可以直接赋给指向基类的指针

解析:

  • 友元对象可以做到直接访问基类中成员;基类中的成员有各自作用域,private明显不行

14.继承与派生可以给软件开发带来很多好处,下述中不正确的是:D
A.避免公用代码的重复开发,提高了程序开发的效率和指令
B.可以减少代码和数据的冗余
C.通过层次关系组织对象,给编码与代码重用带来了方便
D.软件的执行效率大大提高

解析:

  • 继承其是增加了复杂性,提高可重用率

15.实现运行时的多态性要使用( )。D
A.重载函数
B.构造函数
C.析构函数
D.虚函数

16.虚函数必须是类的( )。D
A.友元函数
B.构造函数
C.析构函数
D.成员函数

解析:

  • 虚函数必须是类的成员函数。在C++中,虚函数是通过在基类中声明为虚函数,然后在派生类中进行重写来实现多态性的机制。因此,虚函数必须是类的成员函数,而不能是全局函数或静态函数。

17.当保护继承时,基类的( )在派生类中成为保护成员,不能通过派生类的对象来直接访问。B
A.任何成员
B.公有成员和保护成员
C.公有成员和私有成员
D.私有成员

解析

  • 基类的保护成员在派生类中仍然是保护成员,也无法通过派生类的对象来直接访问。
  • 积累的私有成员,保护继承后仍然是私有继承,也无法访问

18.派生类的对象可以直接访问的基类成员是( )。A
A.公有继承的公有成员
B.保护继承的公有成员
C.私有继承的公有成员
D.公有继承的保护成员

19.下列描述中,错误的是( )。
A.基类的protected成员在public派生类中仍是protected成员
B.基类的private成员在public派生类中是不可访问的
C.基类public成员在private派生类中是private成员
D.基类public成员在protected派生类中仍是public成员

20.当运行程序时实际上是将类模板实例化为一个具体的( )。D
A.类
B.对象
C.函数
D.模板类

二.判断题(10)

  • 答案与解析在下面
  1. 派生类的对象和派生类的成员 对派生类成员的访问权限是一样的。×
  2. 派生类还可以作基类派生出新的派生类。√
  3. 私有继承中基类的私有成员在派生类中还是私有的。√
  4. 继承反映了类之间“是”的关系,组合反映了类之间“有”的关系。√
  5. 一个模板声明了多个形参,则每个参数都必须用关键字typename或class。√
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YY的秘密代码小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值