C++11 类的新功能

新的默认成员函数

C++11在6个默认成员函数基础上又加了两个:移动构造函数移动赋值函数

针对移动构造函数和移动赋值运算符重载有一些需要注意的点如下:

小结:

(1) 生成默认移动构造的条件比较严苛:必须是没有实现析构函数拷贝构造拷贝赋值重载中任意一个才会生成默认移动构造函数

(2)没有移动构造函数,编译器会自动调拷贝构造函数:

例如,有一个person类:

不写拷贝构造编译器会自动生成拷贝构造,同样不写构造,拷贝构造,移动构造,编译器才会生成默认移动构造:

 假设我们把其他类里的移动构造函数屏蔽调,编译器就调不了,没有移动构造函数,编译器会自动调拷贝构造函数:

假设我们给person类加一个析构函数:我们发现,它就调不了默认移动构造了:

default

假设我们要释放一下内存,调了析构,那么编译器就不会再生成默认移动构造函数

我们可以利用default强制编译器生成默认移动构造函数
但是强制生成默认移动构造函数会导致编译器不再生成默认拷贝构造函数这个时候有两个选择:

1.手动写一个拷贝构造函数:2.default强制编译器再生成一个默认拷贝构造函数:

delete

可以强制性禁止生成默认函数。

例如现在不让生成右值:

可变参数模板

我们之前知道可变参数函数printf:

 C++11把可变参数扩展到了模板。格式如下:

可变参数模板可以识别参数类型,个数: 

可以通过sizeof()计算参数包的个数:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微软推出免费网站统计分析工具 Clarity

给大家推送一个福利,最近微软正式对外推出免费网站统计分析工具 Clarity,官方网站是:https://clarity.microsoft.com. 任何用户都可以直接使用,主打一个轻松写意——真的是傻瓜式,没有任何多余的步骤,你唯一…

上门服务系统|北京上门服务系统开发功能及特点

上门护理同城服务系统是一种以社区为基础、以提供上门护理服务为核心的服务体系。上门服务软件是一种基于移动互联网技术的服务平台,旨在提供高效、便捷、安全的上门服务体验。 该软件具有以下特点: 1、便捷性:用户只需在手机上安装该软件&a…

快速上手PostMan,了解PostMan的基本使用

快速上手PostMan PostMan是一个可扩展的API开发和测试协同平台工具有网页版和独立客户端,推荐安装独立客户端 创建WorkSpace工作空间 类似于GitHub的个人空间可以起到云备份的作用 发送请求 发送Get请求 发送Post请求,设置请求体的格式是表单数据即namevalue的格式 发送Pos…

【 RTTI 】

RTTI 概念: RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检 查着这些指针或引用所指的对象的实际派生类型。 原因: C是一种静态类 型语言。其数据类型是在编译期就确定的,不能在运…

一文教你使用STM32CubeMX开发工具

刚开始学习 STM32 的时候,不知道大家有没被外设驱动支配过的恐惧? 那么多的外设,那么多的选项,有可能一个选项没配置对,外设就工作不正常了,大大增加我们入行的难度。 针对这个问题,ST 公司很…

递归实例化导致的栈溢出问题【简直蠢得出奇】

问题描述 今天在练习数据库增删改查,体验三层架构思想时,随便写了点DAO层代码,但服务器运行时竟然爆出了栈溢出的问题,说实话,空指针问题我还能放着耐心去代码里找找问题,但这个栈溢出,我之前就…

如何获取唐诗三百首中的名句列表接口

唐诗三百首,是中国文学中最为经典的诗歌选集之一,其中涵盖了大量美丽、深刻的诗句,被广泛传诵。有不少文化爱好者希望能够获取这些名句列表,以便深入理解唐诗的内涵和精华。那么,如何获取唐诗三百首中的名句列表呢&…

YOLOv5算法进阶改进(7)— 将主干网络SPPF更换为SimSPPF / SPP-CSPC / SPPF-CSPC

前言:Hello大家好,我是小哥谈。SimSPPF是YOLOv6中提出的一种改进的空间金字塔池化方法,它是SPPF的升级版。SimSPPF通过在不同尺度上使用不同大小的池化核来提取特征,从而提高了检测器的性能。与SPPF相比,SimSPPF可以在不增加计算成本的情况下提高检测器的性能。本节课就教…

基于51单片机控制恒压供水系统设计

**单片机设计介绍,基于51单片机的篮球计分器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 设计一个基于51单片机控制的恒压供水系统是一个复杂的工程,涉及到硬件设计和软件编程等多个方面。以下是一…

BUUCTF-WEB-刷题记录(2)

[网鼎杯 2018]Fakebook 注册一个账户,进去之后查看源代码,感觉存在注入点 是数字型注入,payload: 1%20and(false) 1%20and(true)判断列数 1 order by 5改为4的时候则页面正常 判断显示位,可以看见第二列存在数据回…

uniapp前端支付篇(微信、抖音、快手、h5)四个平台支付

前言 微信、快手、h5支付步骤大致相同,只有抖音是有自己的支付组件 项目同时支持多个(微信、快手、h5)平台支付,后端那边代码可以封装的 各平台支付大致流程都是相同的,总结了一下分为五个步骤 点击支付创建订单生成密…

深搜回溯剪枝优化策略-全排列II

LCR 084. 全排列 II - 力扣(LeetCode) 这道题的主体思想和之前讲过的全排列是相似的,不同的是思考的角度要侧重于剪枝方向,所以可以通过这道题对剪枝思想的进一步扩展; 通过题意,可以知道,在上一…

非得让你会之MyBatis插件与Java动态代理

引言 咱们今天聊聊Java动态代理,这东西在开发中真的太常见了。比如Spring AOP、RPC,它们都离不开动态代理。然后,咱们再来说说MyBatis插件,这可是MyBatis框架中的一个超实用的功能,它就像是给MyBatis加了个“超能力”…

SmartSoftHelp8,Web前端性能提升,js,css,html 优化压缩工具

Web前端js,css,html 优化压缩工具 提高web 前端性能,访问速度优化专业工具 CSS,js,html 单文件,多文件 单个,批量压缩优化 web前端优化:减少空格,体积压缩&#xff0…

【C++初阶(十)】set、map、multiset、multimap的介绍及使用

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

【Rust】快速教程——自定义类型、数字转枚举、Cargo运行

前言 超过一定的年龄之后,所谓人生,无非是一个不断丧失的过程而已。宝贵的东西,会像梳子豁了齿一样从手中滑落下去。你所爱的人会一个接着一个,从身旁悄然消逝。——《1Q84》 \;\\\;\\\; 目录 前言自定义类型数字转枚举Cargo.tom…

2022年高校大数据挑战赛A题工业机械设备故障预测求解全过程论文及程序

2022年高校大数据挑战赛 A题 工业机械设备故障预测 原题再现: 制造业是国民经济的主体,近十年来,嫦娥探月、祝融探火、北斗组网,一大批重大标志性创新成果引领中国制造业不断攀上新高度。作为制造业的核心,机械设备在…

[计算机网络] 高手常用的几个抓包工具(上)

文章目录 高手常用的抓包工具一览什么是抓包工具优秀抓包工具WiresharkFiddlerTcpdumpCharles 高手常用的抓包工具一览 什么是抓包工具 抓包工具是一种可以捕获、分析和修改网络流量的软件。它可以帮助您进行网络调试、性能测试、安全审计等任务。 抓包工具可以实时地显示网…

XML处理相关——(待完善)

记录 || Python | 提取xml/tmx文件中的文本内容 python xml处理 xml内容提取

Hdoop学习笔记(HDP)-Part.02 核心组件原理

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …