C++11 标准新特性:Defaulted 和 Deleted 函数_weixin_33937913的博客-程序员秘密

技术标签: c/c++  

本文参考:http://www.ibm.com/developerworks/cn/aix/library/1212_lufang_c11new/#ibm-pcon

C++11 标准的两个新特性:defaulted 和 deleted 函数。对于 defaulted 函数,编译器会为其自动生成默认的函数定义体,从而获得更高的代码执行效率,也可免除程序员手动定义该函数的工作量。对于 deleted 函数, 编译器会对其禁用,从而避免某些非法的函数调用或者类型转换,从而提高代码的安全性

C++ 的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符。这些类的特殊成员函数负责创建、初始化、销毁,或者拷贝类的对象。如果程序员没有显式地为一个类定义某个特殊成员函数,而又需要用到该特殊成员函数时,则编译器会隐式的为这个类生成一个默认的特殊成员函数。

 

defaulted函数的提出

1. 减轻程序员的编程工作量;2. 获得编译器自动生成的默认特殊成员函数的高的代码执行效率。

程序员只需在函数声明后加上“=default;”,就可将该函数声明为 defaulted 函数,编译器将为显式声明的defaulted 函数自动生成函数体。

 

deleted函数的提出

为了能够让程序员显式的禁用某个函数,C++11 标准引入了一个新特性:deleted 函数。程序员只需在函数声明后加上“=delete;”,就可将该函数禁用。

deleted 函数特性还可用于禁用类的某些转换构造函数,从而避免不期望的类型转换。

deleted 函数特性还可以用来禁用某些用户自定义的类的 new 操作符,从而避免在自由存储区创建类的对象。

 


注意:

只有4类特殊成员函数才能被声明为defaulted函数,而deleted函数特性并无此限制

转载于:https://www.cnblogs.com/randall235/p/5418268.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33937913/article/details/94608926

智能推荐

SQL里3个表的连接查询的语句怎么写_三个表连接查询sql语句_种树的博客-程序员秘密

1、SQL语句:select u.*,r.*,r.id ridfrom user u left join sys_user_role sur on u.id = sur.useridleft join sys_role r on sur.roleid = r.id图片: 请点击输入图片描 请点击输入图片描述 注1:user(用户表),sys_role(角色表),sys_user_role(关系表)。 表1:user(下图) 请点击输入图片描述...

VMware虚拟机,从厚置备改成精简置备,并减小硬盘的实际占用空间_weixin_30699465的博客-程序员秘密

工作中由于前期规划不足,导致磁盘空间分配较大,而且是厚置备。后期不再需要时,无法把用不到的空间释放出来,造成空间浪费。经过摸索和实验验证,到最终解决问题,总结出来两种方案。风险提示:两种方案的实验都验证通过了,但第一种方案在生产环境中没有成功,如有类似问题,建议采用第二种方案!环境:Esxi 6.5,vCenter 6.5 U1e,Ubuntu 16.04由于初始分配给Ubuntu ...

立即更新到WORDPRESS 4.7.2!_culu1614的博客-程序员秘密

WordPress Version 4.7.2 was released primitively to correct three security flaws, which included a SQL injection and XSS (cross-site scripting) flaw. Administrators who have yet to update their WordPr...

[每日一读]EMNLP20:用填表的方式进行实体关系联合抽取_御风而行Carrie的博客-程序员秘密

Paper: [EMNLP2020]Two are Better Than One: Joint Entity and Relation Extraction with Table-Sequence Encoderslink: https://www.aclweb.org/anthology/2020.emnlp-main.133.pdfcode: https://github.com/LorrinWWW/two-are-better-than-one这是一篇关于实体关系联合抽取的工作。关于现有的.

跳槽从年头说到年尾,有准备不?Android工程师看看这些建议与面试准备_安卓工程师跳槽_阿尔法789的博客-程序员秘密

为什么要跳槽为什么要跳槽,这个问题一定要思考清楚,因为跳槽的成本其实是挺大的,在一家公司积累的不仅仅是人脉还有对当前行业以及业务的熟悉度,新进入一家公司,一切需要从头再来,需要快速的证明自己,尤其是技术人员,还有就是对新环境和代码的熟悉,这些都是成本,所以 在跳槽前,一定要想好,为什么要跳槽 。其实马爸爸有一句经典的话“要么钱没给到位,要么心委屈了”,说的很形象,我这里再细说一下:1.钱没给...

2020-10-21_lqkitten的博客-程序员秘密

安装 opengauss 1.01 for centos,执行完gs_preinstall后,/opt的权限变这样了[[email protected] opt]# lltotal 28drwxr-xr-x 6 root root 56 Jul 19 21:47 adbsqldrwxr-xr-x 6 omm dbgrp 4096 Jul 10 2018 apache-ant-1.10.5drwxr-xr-x 5 omm dbgrp 48 Jul 19 09:34 gaussdb...

随便推点

Opencv利用ROI将一张图片叠加到另一幅图像的指定位置_weixin_33671935的博客-程序员秘密

机器配置为:VS2013+opencv2.4.13+Win-64bit。===========================分割线========================本节将利用ROI将一幅图像叠加到另一幅图像的指定位置。具体过程见下面代码=======================分割线========================代码演示 1 /* 2 利用...

微x怎么设置主题_微信主题怎么设置 微信主题设置方法_weixin_39585070的博客-程序员秘密

阅读本文前,请您先点击上面的蓝色字体,再点击“关注”,这样您就可以继续免费收到文章了。每天都有分享,完全是免费订阅,请放心关注。  微信怎么设置主题皮肤?微信是我们现在经常使用的社交软件了,微信主题一般都是默认的,那怎么更换微信主题呢?今天小编为大家整理了微信设置主题...

python十大装b语法_10个玩转Python的小技巧,学会了大胆去装逼!_weixin_39852121的博客-程序员秘密

如今,Python 已经成为一种再主流不过的编程语言了,它天生丽质,易于读写,非常实用,从而赢得了广泛的群众基础,被无数程序员热烈追捧。常言道: “流水的语言,铁打的 Python”,貌似目前它已经“睥睨天下,傲视群雄”了。其实Python已经是老司机了,它的第一个公开版本发布于1991年。不过在编程世界里,Python属于“小鲜肉”、“高颜值”,告别了以往的刻板印象。因为 Python 简单易用...

异常测试场景——实战总结_测试活动需求可能出现异常场景有哪些_weixin_44256848的博客-程序员秘密

1、一个操作未完成,进行另一个操作,然后再完成第一个操作,会造成垃圾数据。一个操作进行时,应屏蔽其他操作。如:新建部门之后,新建人员但未完成,删除部门后,再保存人员,会使人员挂在空部门,形成垃圾数据。...

c实用技巧:纯c对于excel数据表的处理_c语言对excel数据处理_长沙红胖子Qt的博客-程序员秘密

需求       需要对数据库的大量数据进行处理,数据库导出的文件是xls(2003之前的excel格式),需要将其中的厂家单独分项,如下图:    实现原理        纯c可以通过字节按照固定分隔读取excel,但是本需求要求可以输出txt,所以实现方式如下:             excel源文件(10000行以上的表格)输入文件:in.txt文件临时文件temp.txt文件输出out....

pip 异常问题_pip出错_zzpdbk的博客-程序员秘密

使用pip安装出现报错 Exception:Traceback (most recent call last): File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\basecommand.py", line 215, in main status = self.run(options, args) File "...

推荐文章

热门文章

相关标签