【C/C++】错题记录(六)

server/2024/10/9 10:48:09/

题目一

在这里插入图片描述
e前必须有数字,e后必须为整数。
并不完全按照科学计数法的规定来(e前的数字可以任意大小,并不是只能是大于等于1小于10)。

题目二

在这里插入图片描述
C++不支持嵌套函数定义。

在 C++中,函数的定义必须在全局作用域或者类作用域中进行,不能在另一个函数内部定义函数。

例如以下代码在 C++中是错误的:

void outerFunction() {void innerFunction() {// 函数体}
}

然而,C++支持在函数内部声明和定义函数指针类型的变量,也可以使用 lambda 表达式来实现类似嵌套函数的功能,在一定程度上可以模拟一些嵌套函数的行为特性。但这与真正的嵌套函数定义是不同的。

题目三

在这里插入图片描述
参考答案:
本问题涉及到两个方面:

  1. C++继承体系中构造函数的调用顺序。
  2. 构造函数中调用虚函数问题。

C++继承体系中,初始化时构造函数的调用顺序如下 :
(1)任何虚拟基类的构造函数按照他们被继承的顺序构造
(2)任何非虚拟基类的构造函数按照他们被继承的顺序构造
(3)任何成员对象的函数按照他们声明的顺序构造
(4)类自己的构造函数
据此可知 A*p = newB;先调用A类的构造函数再调用B类的构造函数。
构造函数中调用虚函数,虚函数表现为该类中虚函数的行为,即在父类构造函数中调用虚函数,虚函数的表现就是父类定义的函数的表现。

why?原因如下: 假设构造函数中调用虚函数,表现为普通的虚函数调用行为,即虚函数会表现为相应的子类函数行为,并且假设子类存在一个成员变量int a;子类定义的虚函数的新的行为会操作a变量,在子类初始化时根据构造函数调用顺序会首先调用父类构造函数,那么虚函数回去操作a,而因为a是子类成员变量,这时a尚未初始化,这是一种危险的行为,作为一种明智的选择应该禁止这种行为。
所以虚函数会被解释到基类而不是子类。 据此可以得到答案C正确。

题目四

在这里插入图片描述
记录一下,原理是会的,就是算错数了……

题目五(强制类型转换的优先级)

在这里插入图片描述
强制类型转换的优先级高于+ - * /

题目六(虚函数指针)

在这里插入图片描述

类的大小只与成员变量(非static数据成员变量)和虚函数指针有关,还要考虑到对齐. 所以类A的大小:4个字节(int _a)+4个字节(指向虚函数的指针) = 8个字节。

题目七(抽象类知识点)

在这里插入图片描述

抽象类概念

在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。

派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。

纯虚函数规范了派生类必须重写,另外纯虚函数更体现出了接口继承。

class Car
{public:virtual void Drive() = 0;
};class Benz :public Car
{
public:virtual void Drive(){cout << "Benz-舒适" << endl;}
};class BMW :public Car
{
public:virtual void Drive(){cout << "BMW-操控" << endl;}
};void Test()
{Car* pBenz = new Benz;pBenz->Drive();Car* pBMW = new BMW;pBMW->Drive();
}

题目八(整体提升)

在这里插入图片描述
参考答案:C
%02x表示输出最少2位,不足补0. 第一个ch=-1,负数拓展到32位需要补1,所以是ffffffff 第二个先转换为无符号数ff(255), 正数拓展补0,由于最少输出2位,所以是ff。

整体提升

  1. 有符号整数提升是按照变量的数据类型的符号位来提升的。
  2. 无符号整数提升,高位补0。

http://www.ppmy.cn/server/129228.html

相关文章

ts类型体操-简单篇

介绍下type challenge中几道简单的类型体操。涉及的知识点主要是&#xff1a;映射类型、 条件类型、联合类型的分布式、infer R等。 1、实现pick 不使用 Pick<T, K> &#xff0c;实现 TS 内置的 Pick<T, K> 的功能。 从类型 T 中选出符合 K 的属性&#xff0c;构…

单片机原理与技术

文章目录 一、单片机概述二、单片机的基本原理1. **硬件结构**2. **指令系统** 三、单片机的关键技术1. **编程技术**2. **接口技术**3. **嵌入式系统技术** 四、单片机在现代科技中的应用 一、单片机概述 单片机&#xff0c;全称为单片微型计算机&#xff08;Single-Chip Mic…

【吊打面试官系列-MySQL面试题】说说对 SQL 语句优化有哪些方法?

大家好&#xff0c;我是锋哥。今天分享关于【说说对 SQL 语句优化有哪些方法&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 说说对 SQL 语句优化有哪些方法&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 1、Where 子句中&#xff1a;…

使用 Maven 与 Spring Boot 集成的详细指南

一、Maven 简介 Maven 是一个基于 POM&#xff08;Project Object Model&#xff09;的项目管理工具&#xff0c;它提供了以下功能&#xff1a; 依赖管理&#xff1a;Maven 可以轻松地管理项目所需的第三方库&#xff0c;并能自动解决库之间的依赖关系。构建自动化&#xff1…

基于STM32设计的智能学习台灯(华为云IOT)(238)

文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成【4】ESP8266工作模式配置1.2 设计思路【1】整体设计思路【2】整体构架【3】上位机开发思路1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要1.4 开发工具的选择【1…

MySQL 修改数据的语句

在 MySQL 中&#xff0c;修改数据的语句主要使用 UPDATE 语句。UPDATE 语句允许你更新表中已存在的记录。以下是一个基本的 UPDATE 语句的语法和示例&#xff1a; 语法 UPDATE 表名 SET 列1 值1, 列2 值2, ... WHERE 条件;示例 假设有一个名为 employees 的表&#xff0c;…

【AI知识点】词嵌入(Word Embedding)

词嵌入&#xff08;Word Embedding&#xff09;是自然语言处理&#xff08;NLP&#xff09;中的一种技术&#xff0c;用于将词语或短语映射为具有固定维度的实数向量。这些向量&#xff08;嵌入向量&#xff09;能够捕捉词语之间的语义相似性&#xff0c;即将语义相近的词映射到…

论文速读:基于概率教师学习的域自适应目标检测

原文标题&#xff1a;Learning Domain Adaptive Object Detection with Probabilistic Teacher 中文标题&#xff1a;基于概率教师学习的域自适应目标检测 代码地址&#xff1a; GitHub - hikvision-research/ProbabilisticTeacher: An official implementation of ICML 2022 p…