C++中一些你不知道的冷知识
1、explicit关键字
explicit用来防止由构造函数定义的隐式转换,比如:
class Base base=10;
即Base类只有一个int类型的变量,explicit使用了以后,就不允许这样写。
被声明为explicit的构造函数通常比非explicit的构造函数更受欢迎,因为它们禁止编译器执行非预期的类型转换。
2、volatile关键字
volatile变量是随时可能发生变化的,它告诉编译器,与volatile变量有关的运算,不要进行任何优化,每次读取volatile变量时都重新从内存读取,不会有临时寄存器来存放变量的值。
volatile可以适用于基础类型,例如:
int,char,long……
也适用于C的结构和C++的类。当对结构或者类对象使用volatile修饰的时候,结构或者类的所有成员都会被视为volatile.
一般的在多线程环境中,涉及到某些变量同步的操作时,使用volatile会更好;
3、mutable关键字
mutable用于类的非静态和非常量数据成员,一般类的成员函数被声明为const,就表示不会修改类的数据成员,但如果要在常成员函数中修改类的非静态和非常量数据成员,则可以使用mutable修饰该数据成员,如下:
编译会报错:test.cpp:13: 错误:increment of data-member ‘demo::m_nCount’ in read-only structure,但如果改为如下代码:
则编译通过。
在学习C/C++或者想要学习C/C++可以加我们的学习交流QQ群:712263501群内有相关学习资料
C++中一些你不知道的冷知识相关推荐
- 你不知道的冷知识:JSON.stringify 居然还能这样用?
点击蓝字前端真好玩关注,回复"1"加入前端进阶群 与大家一起成长 JSON.stringify() 这个 API 想必大家都用过,可以帮助我们将数据解析成字符串类型,如下是个例子: ...
- JS 你不知道的冷知识 (身为开发工程师的你 走了多少弯路?)
toLocaleString() toLocaleString() 方法可根据本地时间把 Date 对象转换为字符串,并返回结果. new Date().toLocaleString() 默认显示的格 ...
- 微波感应模块电路图_关于人体感应灯,你不知道的“冷”知识
早些年前,人体感应灯大多应用在小区楼道,公共洗手间等场所,"人来灯亮,人走灯灭",使他们在生活中极为常见. 近几年来,智能人体感应灯越来越多的应用到家庭生活中,给我们的生活带来很多 ...
- 怎么利用计算机自带功能删除垃圾,怎么清理系统垃圾-关于电脑垃圾清理你不知道的冷知识,如何用电脑自带的垃圾清理...
对于电脑来说我们一般都是需要定期去清理垃圾,否则的话电脑的运行速度只会越来越慢的,想要将电脑进行文件的清理,那么小伙伴们平时都是怎么处理的呢? 不说也知道,无非就是使用360杀毒软件或者是腾讯电脑管家 ...
- 小米计算机弹歌曲,趣味冷知识!小米的T9拨号键盘可以弹乐曲,没想到吧!快来试试!...
小伙伴们,大家好,小编是[漫画与笑话每一天],今天要为大家介绍的是:冷知识,它可以让人增长见识,开阔视野,还能启迪思维,引发强烈求知欲.和"冷笑话"属于另类幽默一样,冷知识虽冷门但 ...
- 不出现php version网页_php冷知识 - 从命令行参数列表中获取选项
分享一个php的冷知识 - ,从命令行参数列表中获取选项 用到的函数是getopt 说明 函数签名是这样的 getopt ( string $options [, array $longopts [, ...
- 【电口模块专题】你不知道的电口模块冷知识
关于大家对电口模块的全部疑问,将会在本期文章全部给大家解答.本期文章易天光通信(ETU-LINK)给大家讲讲关于电口模块的那些冷知识,你或许知道又不是很清楚的那些小知识,干货满满,赶紧收藏起来! 1. ...
- java 自然常数e中出现的连续的第一个10个数字组成的质数_冷知识:数学常数“e”的传奇故事...
原标题:冷知识:数学常数"e"的传奇故事 自然对数的底e是一个令人不可思议的常数,一个由 lim (1+1/n)^n 定义出的常数,居然在数学和物理中频频出现,简直可以说是无处不在 ...
- 树莓派 9 周年:你不知道的树莓派冷知识
作为最成功的微型计算机,开源的树莓派(Raspberry Pi)在技术圈和学术界一直广受编程爱好者的好评,各路大神基于树莓派制作的新奇设备层出不穷,围绕这款微型计算机已经形成了一种独特的 DIY 文化 ...
最新文章
- Python,OpenCV轮廓属性、轮廓检测及绘制
- 「要拼就拼运维」5分钟一台?它让我爱上工作了!
- python3 命令行参数处理库 argparse、docopt、click、fire 简介
- 我对STL的一些看法(二)认识vector容器
- 【IntelliJ IDEA】添加一个新的tomcat,tomcat启动无法访问欢迎页面,空白页,404
- Spring Cloud学习笔记---Spring Cloud Sleuth--新建两个互相调用的服务测试zipkin
- 关于office2010的mso问题和卸载重装问题
- 计算机屏幕方向变化,知识:如何切换笔记本电脑屏幕的方向_计算机的基本知识_IT /计算机_信息...
- Mac键盘符号说明(全)
- 本人博客目录 [实时更新]
- Mac Excel快捷键
- app专项测试之兼容性测试
- 关于Python中的引用
- 达内cgb2111第三次月考 76分就够了
- idea连接登入GitHub账号提示:access token should have `repo` and `gist` scope
- 普通socket服务端
- [学习笔记] 二进制小数表示方法
- 计算机控制器安装方法,win7正确安装3D视频控制器的两种方法介绍
- 看历史涨知识!高速公路知多少?
- java后端接口防止表单重复提交
热门文章
- 机器人导航两篇顶级会议论文解析
- 卷积神经网络模型可解释性
- CVPR2020论文解析:视频分类Video Classification
- 2021年大数据Flink(二十七):Flink 容错机制 Checkpoint
- DCN-cs6200 ospf v2配置
- Handler 实现的一个延时操作
- java jdk 环境变量配置(window 10 系统)
- android studio 开发环境搭建
- c语言节点的作用,C语言链表(基本功能函数)
- Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)