C++ 预置和弃置的函数

news2024/11/13 15:59:27

在C++11中,预置和弃置的函数是用于处理移动语义和完美转发的。

  1. 预置函数(Move Constructor)是在对象被移动时调用的构造函数。它允许将资源从一个对象转移到另一个对象,而不是进行复制。这可以提高性能,特别是在处理大型数据结构时。
  2. 弃置函数(Destructor)是在对象被销毁时调用的析构函数。它负责释放对象所占用的资源,如内存、文件句柄等。

下面的代码预置函数中有&&,是C++11的新特性--右值引用。

怎么调用这个预置函数,使用move函数就可以让编译器知道可以直接调用具有右值引用的移动构造函数。

#include <bits/stdc++.h>
using namespace std;
/*
在C++11中,预置和弃置的函数是用于处理移动语义和完美转发的。
预置函数(Move Constructor)是在对象被移动时调用的构造函数。它允许将资源从一个对象转移到另一个对象,而不是进行复制。这可以提高性能,特别是在处理大型数据结构时。
弃置函数(Destructor)是在对象被销毁时调用的析构函数。它负责释放对象所占用的资源,如内存、文件句柄等。
*/
class MyClass {
public:
    MyClass() {
        cout << "调用默认构造函数" << endl;
    }

    MyClass(const MyClass& other) {
        cout << "调用拷贝构造函数" << endl;
    }
    //预置函数
    MyClass(MyClass&& other) noexcept {
        cout << "调用移动构造函数" << endl;
    }
    //弃置函数
    ~MyClass() {
        cout << "调用析构函数" << endl;
    }
};

int main() {
    MyClass obj1; // 调用默认构造函数
    MyClass obj2(obj1); // 调用拷贝构造函数
    MyClass obj3(move(obj1)); // 调用移动构造函数
    //3个对象调用3次析构函数
    return 0;
}

【运行结果】 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

红酒与美食搭配:味觉的新探索

在美食的世界里&#xff0c;红酒如同一位优雅的舞者&#xff0c;与各种佳肴共舞&#xff0c;创造出无尽的味觉惊喜。当定制红酒洒派红酒&#xff08;Bold & Generous&#xff09;与各式美食相遇&#xff0c;便开启了一场味觉的新探索之旅。 一、红酒与美食的邂逅&#xff…

中国LLM研究所收集100+AI大模型资源

自ChatGPT为代表的大语言模型 (大型语言模型&#xff0c;LLM)出现以后&#xff0c;由于其惊人的类通用人工智能(AGI)的能力&#xff0c;掀起了新一轮自然语言处理领域的研究和应用的浪潮。尤其是以ChatGLM、LLaMA等平民玩家都能跑起来的较小规模的法学开源之后&#xff0c;业界…

@SchedulerLock注解使用

文章目录 Scheduled注解参数介绍建表配置类示例参考 如果服务中使用了Scheduled注解&#xff0c;且服务部署了多个节点。那么在同一时刻&#xff0c;所有节点都会执行定时任务。但有有些任务我们只需执行一次&#xff0c;这就需要使用分布式锁的方式来控制&#xff0c;如可以使…

写文案的软件有哪些,四款强大的文案生成器为你创作文案

文案&#xff0c;作为沟通和营销的桥梁&#xff0c;其重要性不言而喻。然而&#xff0c;创作出既吸引人又具有说服力的文案&#xff0c;往往需要投入大量的时间和精力。随着市场上出现了一些能够辅助甚至替代人工创作文案的生成器出现&#xff0c;它解决了大家创作文案的难题。…

(器件)ATMXT1664S1是电容式触摸屏控制器、而ATMXT2912TG-A则是maXTouch 2840节点触摸屏控制器

1、maXTouch mXT1664S电容式触摸屏控制器为大型触摸屏设备带来了S系列架构。mXT1664S得益于强大的32位AVR内核&#xff0c;并且由于S系列架构&#xff0c;它具有业界最高的信噪比(SNR)&#xff0c;提供了无与伦比的触摸性能。与S系列中的其他设备一样&#xff0c;mXT1664S包括:…

在OA系统中,飞书的设计从颜值和体验上算是天花板了吧?

书是一款优秀的企业通讯协作工具&#xff0c;在 OA 系统的设计上有很多优点&#xff0c;如用户界面友好、安全性高和协作功能丰富等。但它也有一些可以改进的地方&#xff0c;以下是一些可能的方向&#xff1a; 用户体验一致性&#xff1a;飞书的不同功能模块可能在用户体验上…

TCP的可靠机制

TCP的可靠机制 前言 要了解TCP的可靠机制&#xff0c;我们必须要先熟悉TCP的报文&#xff0c;在这篇文章中有详细介绍TCP的报文 &#xff1a; 并且确认应答机制也在该文章中提到&#xff0c;所以这篇文章就不会再介绍确认应答了。 超时重传 我们都知道&#xff0c;报文在网…

2024年【起重机司机(限桥式起重机)】最新解析及起重机司机(限桥式起重机)找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机司机(限桥式起重机)最新解析根据新起重机司机(限桥式起重机)考试大纲要求&#xff0c;安全生产模拟考试一点通将起重机司机(限桥式起重机)模拟考试试题进行汇编&#xff0c;组成一套起重机司机(限桥式起重机)全…

c++(模版)

目录 函数模板格式 函数模版原理 函数模板的实例化 模板参数的匹配原则 类模板 函数模板格式 template<typename T1, typename T2,......,typename Tn> 返回值类型 函数名(参数列表){} template<typename T> void Swap( T& left, T& right) { T te…

cesium的flyTo在飞行完成后渲染

viewer.camera.flyTo({}); 替换自己要渲染的labe img等 viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(lon,lat,height), // 飞行目的地&#xff0c;视角高度duration: 3, // 飞行所用时间// 飞行完成后的事件complete: function() {viewer.camera.flyTo…

pytorch: cpu,cuda,tensorRt 推理对比学习

0&#xff1a;先看结果 针对resnet模型对图片做处理 原图结果 分别使用cpu&#xff0c;cuda&#xff0c;TensorRt做推理&#xff0c;所需要的时间对比 方法时间cpu13s594mscuda711mstensorRt 113ms 项目地址&#xff1a; GitHub - july1992/Pytorch-vily-study: vily 学…

KubeVirt虚拟机存储及网络卸载加速解决方案

1. 方案背景 1.1. KubeVirt介绍 随着云计算和容器技术的飞速发展&#xff0c;Kubernetes已成为业界公认的容器编排标准&#xff0c;为用户提供了强大、灵活且可扩展的平台来部署和管理各类应用。然而&#xff0c;在企业的实际应用中&#xff0c;仍有许多传统应用或遗留系统难…

电脑缺少directx怎么办?电脑dll修复详细教程!7种方法!

DLL&#xff08;动态链接库&#xff09;文件是Windows操作系统中非常重要的组成部分&#xff0c;它们包含了程序运行所需的代码和数据。然而&#xff0c;由于各种原因&#xff0c;如系统更新、软件卸载不当或病毒感染&#xff0c;DLL文件有时会丢失或损坏&#xff0c;导致程序无…

day18 Java流程控制——Scanner进阶使用

day18 Java流程控制——Scanner进阶使用 本章目录 day18 Java流程控制——Scanner进阶使用1. 什么是Scanner&#xff1f;2. Scanner进阶使用&#xff08;实例&#xff09;2.1 整数&小数的输入输出2.2 我们可以输入多个数字&#xff0c;并求其总和与平均数&#xff0c;每输入…

96年高中程序员年收入30万

互联网创业交流群&#xff0c;从昨天晚上8.1建军节开始建群&#xff0c;到今天中午已经突破200人了。 这里面有我的朋友&#xff0c;也有马总的朋友&#xff0c;当然不管是谁的朋友&#xff0c;进来了大家都是一家人。 以后在不违反原则的情况下&#xff0c;希望大家能和谐相…

建筑业数据挖掘:Scala爬虫在大数据分析中的作用

数据的挖掘和分析对于市场趋势预测、资源配置优化、风险管理等方面具有重要意义&#xff0c;特别是在建筑业这一传统行业中。Scala&#xff0c;作为一种强大的多范式编程语言&#xff0c;提供了丰富的库和框架&#xff0c;使其成为开发高效爬虫的理想选择。本文将探讨Scala爬虫…

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 03 云原生网络操作系统

本章要回答的问题&#xff1a; 云原生网络操作系统的主要需求是什么?什么是 OpenFlow 和软件定义网络? 它们适用什么样的场景?网络解耦中网络操作系统有哪些可能的选择?这些模型与云原生 NOS 的需求相比是怎样的? 网络设备的新需求 云原生时代中网络设备需要满足以下要求…

揭秘对话式搜索中的广告检测——Detecting Generated Native Ads in Conversational Search

Detecting Generated Native Ads in Conversational Search | Companion Proceedings of the ACM on Web Conference 2024https://dl.acm.org/doi/abs/10.1145/3589335.3651489 1. 概述 大型语言模型(LLMs)已成为构建对话式搜索引擎与检索增强生成系统的主流标准。然而,在大…

python packages是什么意思

package指的就是包&#xff0c;它是一个有层次的文件目录结构&#xff0c;它定义了由n个模块或n个子包组成的python应用程序执行环境。通俗一点&#xff1a;包是一个包含__init__.py 文件的目录&#xff0c;该目录下一定得有这个__init__.py文件和其它模块或子包。 但是这会分…

【传知代码】疯狂交互学习的BM3推荐算法(论文复现)

在当今信息爆炸的时代&#xff0c;我们每天接触的数据量已经超出我们大脑的处理能力。在这个背景下&#xff0c;个性化推荐系统以其独特的能力和智能化的算法引起了广泛关注。其中&#xff0c;基于行为的推荐系统成为了引领潮流的前沿技术之一&#xff0c;本文将深入探讨疯狂交…