CppQuiz

news/发布时间2024/8/24 12:44:14

https://cppquiz.org/

16. 类成员构造析构顺序

子类的构造函数先执行类成员的构造函数,再执行函数体;析构相反。

17. 父类子类构造析构顺序

子类的构造函数先执行父类的构造函数,再执行函数体;析构相反。
默认执行无参构造函数,如果在初始化列表中写明,则按初始化列表为准。初始化列表会先于构造函数体执行。

25. 有符号整数溢出

有符号整数溢出是 UB。虽然大多数 CPU 会绕回,但总有不是的。具体见 C++ - 未定义行为 或 https://zhuanlan.zhihu.com/p/391088391。

38. decltype

注意 decltype((e)) 与 decltype(e) 可能不同,当 e 为标识符表达式时(左值)前者为 T&,后者为 T。
具体规则见 模板 - decltype

48. async

没用过。TODO

113. 函数特化的匹配规则

可能同时存在重载的非模板函数与模板函数。选择要调用哪个函数的规则为:确定参数类型,先找出能够完全匹配的函数(模板可以匹配任意类型),如果有多个,优先选择非模板函数,其次是最特化的模板函数,最后是无特化的
函数 - 函数特化的匹配规则

126. 静态成员定义时的名字查找

https://zh.cppreference.com/w/cpp/language/unqualified_lookup 见静态数据成员的定义

对于在静态数据成员的定义中所使用的名字,它的查找规则与查找成员函数中使用的名字相同,即使这个定义可能在类外部。
(非 inline 静态数据成员可以延迟定义,只在类内进行声明。在定义前是不完整类型?)

struct X {static int x;static const int n = 1; // 第一个找到
};
int n = 2; // 第二个找到
int X::x = n; // x = 1

131. explicit

复制初始化选择构造函数时,不会考虑 explicit 函数。explicit 函数的参数需要通过直接初始化构造(即显式使用构造函数)。它不能用于隐式转换和复制初始化。

153. 指针转换

如果 cv2 的限定符比 cv1 更多,则“指向 cv1 T 的指针的纯右值”可以转换为“指向 cv2 T 的指针的纯右值”。否则不可。
(即可以额外加 cv,但不能去除)
由于"abc"是 const char 数组可被隐式转换为const char*,因此char *s = "abc"会CE,因为去掉了 const。

160. 虚函数的默认参数值

设 A 是 B 的基类,A *x = new B(),则称 x 的静态类型 (static type) 为其直接指向的基类 A,动态类型 (dynamic type) 为其实际类型 B。
注意,如果虚函数的参数有默认值,则默认值取决于 x 的静态类型 A 中的定义,即使虚函数的实现确实取决于 B。
如:父类 A 有虚函数virtual void f(int a = 1),子类 B 覆盖虚函数virtual void f(int a = 2),则x->f()会调用B::f(),但参数的默认值来自A::f(),是 1。

161. switch case

case、default 只是一个 label,用于控制跳转(考虑转换成的汇编;和写 goto 类似),不会影响后面代码的顺序执行和跳转。
所以不加 break 时程序可以执行多个 case 内的语句。

197.

int i, j;中在 i 进行声明时,这个 j 还不存在。

207. map.operator []

使用std::map m; m[key]时,等价于调用m.try_emplace(move(key)):如果该 key 不存在,则插入 pair(key, ValueType())。
默认放入的 value 会被值初始化:对于类则调用无参构造(如果没有则不进行初始化),对于非类则零初始化。见 C++ - 初始化

226. mutable

设 A 类对象 a 拥有 mutable 的 B 类成员 b,则不管 a(或 *this)有没有 const 修饰,a.b 都不会有 const 修饰符,因此可以被修改。
因此将 a.b 传入函数时,会优先匹配B&而非const B&

**235. initializer_list **

因为 initializer_list 只是保存指向常量数组的指针,因此将其直接传入参数也不会发生元素的拷贝(只是拷贝结构体,也就是两个指针)。
而通过变量构造它时,会发生变量到数组的拷贝。如:initializer_list<Node> i{node};需要将 node 拷贝到指定区域。
STL - initializer_list

248. min/max 返回 const 引用

std::min/max 返回 const T& 而非数值,且在各参数大小相同时返回第一个参数。所以const int &m = max(a, b)定义的 m 值会随着 a/b 变化。

249. 引用初始化规则

由于引用初始化规则,将int赋值给const char&,会通过该int隐式创建一个 char 临时量,绑定给该引用。因此原int与该引用无关,修改也不会影响。
C++ - 引用初始化

254. 函数类型

计算函数类型时,会移出参数类型中的 top-level cv 修饰符。见 函数 - 函数类型

275. 类型大小

每个实现关于基础类型的大小所做的选择被统称为数据模型。
因此,基础类型的大小是 implementation-defined 的,标准只规定了一部分,比如 int 至少是 16 位的。
C++ - 数据模型

283. 对象销毁顺序

类似栈变量的释放顺序,delete[] 一个数组时也是从后往前销毁元素的,与 new T[] 时的顺序相反。

289. 函数默认参数,lambda

默认参数不需要是常量,它在每次函数调用时,都会进行一次求值。见 函数 - 函数的默认参数
每个 lambda 表达式会生成一个唯一的类。如果其内部有 static 变量,则每次调用 lambda 都会使用相同的 static 变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.liansuoyi.cn/news/61485384.html

如若内容造成侵权/违法违规/事实不符,请联系连锁易网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

docker服务设置时区(两种方案)

在开始之前先介绍docker的概念,docker可以理解为我们现在见过的应用商店,docker中的各种镜像可以理解为应用商店的各种软件 docker是建立在系统上的,但是docker是美国商店,所以他的时间会比我们现在的时间少了8小时 一般在安装docker后,docker里面的时区会和北京时间差8小…

SpringMVC参数绑定

目录参数的绑定绑定的机制支持的数据类型使用要求使用示例基本类型和 String 类型作为参数POJO类型作为参数POJO 类中包含集合类型参数请求参数乱码问题特殊情况自定义类型转换器使用场景使用ServletAPI对象作为方法参数 参数的绑定 绑定的机制 我们都知道,表单中请求参数都是…

《信息安全系统设计与实现》第十一周学习笔记

第十二章 块设备I/O和缓冲区管理 块设备I/O缓冲区 I/O缓冲的基本原理非常简单。文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk)标识的磁盘块时。它首先在缓冲区缓存中搜索分配给磁盘块的缓冲区。 如果该缓冲区存在并且包含有效数据、那么它只需…

2023-11-18:用go语言,如果一个正方形矩阵上下对称并且左右对称,对称的意思是互为镜像, 那么称这个正方形矩阵叫做神奇矩阵。 比如 : 1 5 5 1 6 3 3 6 6 3 3 6 1 5

2023-11-18:用go语言,如果一个正方形矩阵上下对称并且左右对称,对称的意思是互为镜像, 那么称这个正方形矩阵叫做神奇矩阵。 比如 : 1 5 5 1 6 3 3 6 6 3 3 6 1 5 5 1 这个正方形矩阵就是神奇矩阵。 给定一个大矩阵n*m,返回其中神奇矩阵的数目。 1 <= n,m <= 1000。…

第9次作业-知识点整理:关于函数依赖定义、函数依赖类型

这个作业属于哪个课程 https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里 https://edu.cnblogs.com/campus/uzz/cs3/homework/13106这个作业的目标 第9次作业-知识点整理:关于函数依赖定义、函数依赖类型目录函数依赖的定义函数依赖类型一、平凡函数依赖二、非平凡函…

Linux要删除的目录下出现了~目录怎么办

可直接用以下命令删除’~’目录,而不影响当前用户主目录 rm -rf \~ `rm -rf \~` 命令的作用是递归地删除名为 ‘~’ 的目录。 解释一下这个命令的各个部分: - `rm` 是 Linux 中用于删除文件和目录的命令。 - `-r` 选项表示递归删除,即删除目录及其所有内容。 - `-f` 选项表示…

自然语言处理预训练——子词嵌入

在英语中,“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同,“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西班牙语等其他语言中,许多动词有…

查看perl中 使用 cpan -i module安装过的模块

001、(base) [b20223040323@admin1 003_annotation]$ perldoc perllocal | grep "\"Module\"" ## 查看命令 。

Spring基于web.xml的启动时的处理流程

基于web.xml的Spring web应用程序少不了以下这个配置: <!-- 监听器:启动Web容器时,自动装配ApplicationContext的配置信息,完成容器的初始化--> <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class&g…

c4w4_人脸识别和神经风格转换

特殊应用:人脸识别和神经风格转换 人脸识别 与人脸识别(Face Recognition)相关的还有活体检测(Liveness Detection)问题,在这里仅讨论前者。 人脸验证(Face Verification)和人脸识别(Face Recognition)的区别:人脸验证:一般指一个1对1的问题,只需要验证输入的人脸图…

HCIA-交换机VLAN

前言 随着网络中计算机的数量越来越多,传统的以太网络开始面临广播泛滥以及安全性无法保障等各种问题。 因此Vlan(Virtual Local Area Network 虚拟局域网)技术开始普及使用 Vlan是将一个物理的局域网在逻辑上划分成多个广播域的技术;通过在交换机上配置Vlan,可以实现在同一…

二分查找

二分查找需要满足的条件:用于查找的内容逻辑上来说是需要有序的 找的数量只能是一个,而不是多个查找的区间左闭右闭 [ left, right ] 左闭右开 [ left, right )闭区间:是直线上介于固定两点间的所有点的集合(包括给定的两点),用 [a,b]来表示 (包含两个端点a和b) 开区间…

什么是人工智能领域的 SFT - Supervised Finetuning

在人工智能(AI)领域,Supervised Finetuning 是一个重要的概念。它涉及到在预训练模型的基础上,利用有标签的数据进行微调,以适应特定的任务或领域。这个过程可以被视为在更广泛的知识基础上进行特定任务的训练,从而在新任务上获得更好的性能。 Supervised Finetuning 这个…

python:第十八章:比较运算符

一,比较运算符是什么? 用于比较两个值的运算符。 作用: 对两个值进行比较,并返回一个布尔值(True或False)作为比较的结果 1,比较运算符有哪些 主要有六种比较运算符: 小于(<) 小于等于(<=) 大于(>) 大于等于(>=) 等于(==) 不等于(!=) 2,字符串的…

Python博客作业3

import turtle import datetime import timedef draw_gap(): # 绘制数码间隔turtle.penup()turtle.fd(5)def draw_line(draw): # 绘制单段数码管draw_gap()turtle.pendown() if draw else turtle.penup()turtle.fd(40)draw_gap()turtle.right(90)def draw_digit(d): # 根据数…

Applescript实现无痕检测手机号或邮箱号是否注册iMessage服务,iMessage蓝号检测完美实现

一、检测数据的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写脚本控制…

1117-UseCustomJarInKettle

title: 在Kettle(PDI)中使用IDEA或VS Code编写自定义Java代码协助转换 zhihu-url: https://zhuanlan.zhihu.com/p/667471908在 Kettle(PDI)中使用 IDEA 或 VS Code 编写自定义 Java 代码协助转换 笔者最近正在学习数据仓库课程,其中某项作业要求笔者使用 Kettle 工具来对数…

某游戏so加固思路分析

反调试 frida hook strstr发现会对一些敏感的字符串进行判断,将其中涉及到反调试的进行过滤直接返回null。 xposed substrate XposedBridge.jar /data/local/tmp TracerPid: State: android_server gdb lldb test-keys dkplugin com.qgwapp.shadowside libtopa1024.so com.svm…

安装numpy

今天刚下了pycharm,然后安装numpy,发现报错:[notice] A new release of pip is available: 23.2.1 -> 23.3.1 [notice] To update, run: python.exe -m pip install --upgrade pip 然后看网上的帖子,用这个指令升级pip(错误的原因就是pip要升级)python -m pip instal…

2023.11.18值得推荐的一款服务器空间

,已经体验一个月咯,非常不错的免费资源,适合大家去了解了解~!他们家的免费空间,免费服务器,非常稳定,非常靠谱,值得拥有,价格厚道~!免备案服务,域名管理等等服务,应有尽有,2023年你值得了解,他们家的免费云服务器还是独立IP的哦,非常非常好,非常NICE~!官网地址…
推荐文章