c++11 指针空值、默认函数控制、

C++11标准之默认函数的控制、指针控制nullptr、lambda表达式等 【代码】C++11标准之默认函数的控制、指针控制nullptr、、、 阅读详情

指针空值常量nullptr, 是一个编译时期的常量。不要对nullptr做取地址操作。

指针空值类型 nullptr_t.

所有定义为nullptr_t类型的数据都是等价的,行为也是完全一致。

nullptr_t类型数据可以隐式转换成任意一个指针类型。

nullptr_t类型不能转换为非指针类型,即使使用reinterpret_cast<nullptr_t>()的方式也是不可以的。

nullptr_t类型数据不适用于算术运算表达式。

nullptr_t类型数据可以用于关系运算表达式,但仅能与nullptr_t类型数据或者指针类型数据金子那个比较,当且仅当关系运算符为==、<=、>=等时返回true.

 

默认函数控制:

显示缺省函数:由于构造函数如果没有自己定义,会有一个默认的构造函数,这样的可以是POD.如果自己定义了带参的构造函数,要想用无参构造,必须自己定义,且这个无参函数与默认形式和使用上一致,但却破坏了POD.为了既有函数的自定义,又想不破坏POD,所以引入了 新机制,重用default关键字。在默认函数定义或者声明时加上“=default”,从而显示地指示编译器生成该函数的默认版本。

Struct() = default;

如果指定产生默认版本后,程序员不在也不应该实现一份同名的函数。用于类的定义中修饰成员函数,也可以在类定义之外修饰成员函数。以及一些其他函数。

显示删除函数:限制默认拷贝函数的生成,最简单的方法就是设置为私有的权限,不写实现类。但是友元类很可能会需要拷贝构造函数,而拷贝构造函数不实现的话,会导致编译失败。c++11 中在函数的定义或者和声明上加上“=delete”,它会只是编译器不生成函数的缺省版本。可以有效阻止用户错用这个函数,注意一旦缺省版本被删除,重载该函数也是非法的。

1.除了避免用户使用一些不应该使用的类的成员函数,还可以避免编译器做一些不必要的隐式数据类型转换(下面的类成员函数、全局函数、一些普通函数)。如下隐性参数转换:

2.不能将explicit关键字与显示删除合用,会造成一些混乱。

3.需要对象在指定内存位置进行内存分配,并且不需要析构函数来完成一些对象级别的清理,可以通过显示删除析构函数来限制自定义类型在栈上或者静态的构造。

 

 

 

HPE磁盘阵列管理04——MSA事件 本文介绍了HPE MSA存储系统的事件处理机制,重点分析了常见磁盘故障事件及其解决方案。文章首先定义了MSA事件的五个严重级别(严重、错误、警告、信息和解决),然后详细列举了多个典型事件案例(如事件1、3、6、8、172等),包括每种事件的触发条件、对系统的影响以及具体修复步骤。针对磁盘故障场景,文章提供了更换磁盘、重建磁盘组、取消隔离等操作建议,并强调应及时配置备用磁盘以降低数据风险。最后指出更详细的事件说明可参考《MSA事件描述参考指南》,并提供了HPE官方手册下载链接。全文为技术人员处理MSA存储故障 阅读详情

相关推荐

金蝶云星空核心数据表解析与高效关联查询指南

本文深入解析金蝶云星空核心数据表结构,提供高效关联查询的实战指南。文章详细介绍了基础资料、业务单据和财务模块的关键表及其关联逻辑,重点阐述了如何利用关联表(_LK表)进行跨单据溯源,并分享了编写高性能SQL的实用技巧与避坑建议,帮助开发者、实施顾问和数据分析师快速掌握数据查询方法,提升工作效率。

weixin_29254673的博客 524

[C++11] nullptr完整解析

nullptr是 C++11 引入的一个新特性,它表示一个空指针,用于替代之前使用的NULL。接下来我们看看到底为什么要引入nullptr。

wangdsh的博客 3818

C++笔试题整理

目录 1. 笔试题1 1.1 链表反转 1.2 String 2. 笔试题2 2.1 求下面函数的返回值(微软) 2.2 什么是“引用”?申明和使用“引用”要注意哪些问题? 2.3 将“引用”作为函数参数有哪些特点? 2.4 在什么时候需要使用“常引用”?  2.5 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则? 2.6 “引用”与多态的关系? 2.7 “引用”与指针的区别是什么? 2.8 什么时候需要“引用”? 2.9 结构与联合有和区别? 2.10 下面关于.

星月相随的专栏 2483

c++ 类的默认八种函数

类的默认八种函数类的默认八种函数参考 类的默认八种函数 参考 1、https://www.cnblogs.com/lsgxeva/p/7668200.html

JMW1407的博客 1万+

CAN-do-paser:Java开发的CAN总线数据帧解析库

CAN总线数据帧使用DBC文件信息解析为物理量,基于Java开发的数据解析工具。

佳瑞的博客 1133

【Python爬虫】股票信息定向爬取

【Python爬虫】股票信息定向爬取:通过requests-bs4-re技术路线爬虫获取上交所和深交所所有股票的名称和交易信息

qq_39321802的博客 1502

C++空指针调用成员函数

如果在C++里用空指针调用成员函数会发生什么情况呢? 以下面类为例 class A { private: int a=100; public: void Show() { cout << "This is A" << endl; } void GetA() { cout << a << endl; } void SetA...

柴犬小丸子的博客 441

Unity实战篇 | 教你怎样将Unity的启动Logo 设置成 自己制作的 帧动画

上一篇文章我们讲了怎样在不购买专业版的情况下自定义Unity的启动Logo。 那本篇文章就来介绍一下,怎样在去除默认Logo的前提下制作自己的启动动画!

努力前行,总会成为自己心中的那道光 6万+

C++空指针调用函数

在C++中是允许空指针调用函数的,但是在我们使用空指针调用成员函数的时候,一定要注意有没有用到this指针如果用到了this指针要加以判断以保证程序的健壮性。 例如以下程序 class Person { public: void Print() { cout << "I'm LiHua." << endl; } void getfd() { cout <...

一颗牙疼 1279

损失函数大汇总(六十一)(Signed Distance Map Loss附公式推导与代码)

摘要 本文介绍了Signed Distance Map (SDM) Loss,一种将形状先验直接融入分割任务的方法。SDM将每个像素表示为到目标边界的带符号距离(内部为负,外部为正),相比二值mask能更连续地表达形状几何信息。SDM Loss的核心思想是让网络学习这个隐式形状场,通过可微的Heaviside函数近似将SDM转换为分割结果。文中重点分析了一种product-based regression loss,它能同时关注距离数值和内外符号的正确性,对边界区域尤为敏感。SDM Loss通常与传统的分割

悦学共鸣,温柔以待,汇聚光芒,共同成长 187

无人机——电机篇(一)

1. 电机的定义 电机俗称“马达”,是无人机的动力来源,无人机通过改变电机的转速来改变无人机的飞行状态。即改变每个电机的速度,使得无人机能够盘旋空中,上升或下降,或向各个方向移动。2. 电机的分类 电机分为:“无刷电机”和“有刷电机” - 无刷电机:是采用半导体开关器件来实现电子换向,具有可靠性高、低干扰、低噪声低、寿命长等优点。一般应用在稍大型的飞行器,载重大,可以有更广泛的用途。 - 有刷电机:是内含电刷装置的将电能转换成机械能(电动机)或将机械能转换成电能(发电机)的旋转电机。有刷电机是所有电机的基

weixin_46066938的博客 1万+

C/C++空指针总结

在C中  在C中,使用NULL表示空指针,实际上,NULL被定义为: #define NULL ((void*) 0)   其中((void *) 0)表示对’0’进行强制转换,转换为一个void类型的指针,用于表示空指针。即NULL表示一个指向地址’0’的void指针,将NULL赋予其他类型的指针时,会进行一个隐式转换,将void类型的指针转换为相应的类型。 在C++中(C++11之前)  在...

JosephJoestar 2106

openbmc 支持mctp over pcie(三)(支持作为endpoint)

本文介绍了在Intel BHS平台上支持MCTP over PCIe端点开发的调试方法。开发基于CodeConstruct和AspeedTech-BMC的开源项目,将内核驱动改为模块形式以便调试。内容包括DTS配置、驱动模块设置步骤,以及如何将BMC配置为端点设备。调试过程涉及内核模块加载、MCTPD启动、参数设置等关键命令,并展示了路由表、地址和邻居信息的测试结果。该方案仅为实验性工作,需注意停止其他使用/dev/aspeed-mctp0接口的应用。

wit_yuan的专栏 1553

C++11特性的学习之为改变思考方式而改变(六)

  目录括号内为适合人群,所有库作者的内容暂不做学习,可自行查阅《深入理解C++11:C++11新特性解析与应用》。网盘链接: https://pan.baidu.com/s/1Jf29R7-foOoXJ5UW3mTKVA 密码: 7vgq 目录 1.指针空值——nullptr(所有人)   ①指针空值:从0到NULL,再到nullptr   ②nullptr和nullptr_t 2.默...

qq_17044529的博客 575

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

[C++11新特性]第二篇

0.可变数量参数,可变函数模版,变长模版类 c++98可变数量参数 #include<cstdio> #include<cstdarg> double SumOfFloat(int count, ...) { va_list ap; double sum=0; va_start(ap,count); ...

weixin_30456039的博客 75

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C++11新特性(部分)

C++11标准由国际标准化组织(ISO)和国际电工委员会(IEC)旗下的C++标准委员会(ISO/IEC JTC1/SC22/WG21)于2011年8月12日公布,并于2011年9月出版。此次标准为C++98发布后13年来第一次重大修正。相比较而言。C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率

fjhugjkdsd的博客 273

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C++11新增关键字和范围for循环

c++11相对于c++98,新增或改进的关键字:auto、decltype、nullptr、delete、final和override

m0_73693552的博客 796

【深入理解C++11】第七章 为改变思考方式而改变

深入理C++117.1 指针空值 nullptr 7.1 指针空值 nullptr  在C++中一般一个指针声明都是char* p = NULL;表示一个指针处于初始化状态,NULL一般是一个宏定义,定义如下: #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((vo...

柠檬柠檬C的博客 275

【C++入门】内联函数 | auto关键字 | 范围for | 指针空值

C++入门 | 内联函数 | auto关键字 | 范围for | 指针空值

m0_74841364的博客 1573

C++11: nullptr、默认函数的控制、lambda函数、对齐方式

1 nullptr        nullptr是nullptr_t类型的实例化,替代了传统的NULL,C++11的指针空值常量。        nullptr_t是指针空值类型,nullptr仅仅是nullptr_t的一个实例,nullptr_t的使用规则: 1) 所有定义为nullptr_t类型的数据都是等价的,行为也完全一致 2) nullptr_t类型数据可以隐式转换成任意一个指针

liuxuejiang158的专栏 2604

《深入理解C++11:C++11新特性解析与应用》笔记七

深入理解C++11 第七章 为改变思考方式而改变

Mamong's blog 1296

深入理解C++11

第2章 保证稳定性和兼容性 finaloverride 控制 局部和匿名类型作模板实参 第3章 通用为本专用为末 继承构造函数 委派构造函数 右值引用移动语义和完美转发 移动语义 右值和左值的区别 stdmove 强制转化为右值 完美转发 列表初始化 初始化列表 POD类型 模板别名 第4章 新手易学老兵易用 auto类型推导  decltype decltype四规则 追踪返回类型 第5章 提高类

技术栈 1万+

C++和C++11的一些特性,建议初学者看看

1. 命名空间 定义: namespace 空间名 { } 命名空间可以嵌套定义, 如: namespace N1 { int n1; namespace N2 { int n2; } } 使用时也需要嵌套, 例如: N1::n1 = 0; N1::N2::n2 = 0; 编译器会将同名的命名空间合并, 这点和汇编的段类似. 使用时可以使用 using name...

weixin_44788162的博客 3067

更易理解的C++入门下(C++关键字、引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr)

更易理解的C++入门知识,囊括C++关键字、引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr

. 1715

C++的基本入门知识讲解

inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开,就没有函数地址 了,链接就会找不到。因为这里我们如果把函数定义成inline,然后声明和定义分离的话,我们就调用函数的话,我们就找到不到函数了,因为inline型的函数没有地址,我们使用函数的时候找不到它的地址就报错了8. auto关键字(C++11)在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的 是一直没有人去使用它,大家可思考下为什么?

YAmethystLove的博客 1700

C++初识(C++关键字,命名空间,输入&输出,缺省函数,函数重载,引用,内联函数,auto关键字,基于范围的for循环,指针空值nullptr)入门级

本节目标: ·1. C++关键字 ·2. 命名空间 ·3. C++输入&输出 ·4. 缺省参数 ·5. 函数重载 ·6. 引用 ·7. 内联函数 ·8. auto关键字(C++11) ·9. 基于范围的for循环(C++11) ·10. 指针空值---nullptr(C++11) 1. C++关键字(C++98) C++总计63个关键字,C语言32个关键字 2. 命名空间 在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用.

weixin_56054625的博客 798
上一篇: C 11 decltype类型推导
下一篇: c++11并行编程
heary29
博客等级 码龄12年 37粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值