匿名对象 与 new delet初识

一.匿名对象

1.定义:

没有名称的临时创建的对象,通常用于临时操作或作为函数的实参或返回值。

2.声明周期与作用域:

仅仅在定义所在代码行中,执行完就销毁。

3.使用格式

类名(构造参数)

4.使用场景

临时调用成员函数

mid:C++内存管理

二.new与delete

1.new与delet作用:

new动态开辟空间,如果是自定义类型会调用对象的构造函数,delete释放动态空间并调用对象的析构函数

2.本质

(1).new的操作是operator new函数与对象构造函数构成的

operator new 可以理解是malloc加上失败抛异常


(2).析构函数操作是析构函数和operator delete完成的operator delete又可以理解为free加上抛异常(其实不是free,是另外一个_free函数,free是它的包装)

3.问题

(1)new与构造,delete与析构不会对同一块空间操作吗

不会,new只会为原来在栈上开辟空间的成员变量在堆上开空间,构造会在堆上/别处开辟资源(动态开辟数组/流/别的)

delete只会销毁非资源的,如new开辟的,析构会销毁开辟的资源(原来在堆上动态开辟的)

4.语法

1.new开单空间

类型指针=new 类型(初始化值);//自定义类型会让初始化值隐式类型转化再拷贝构造

2.new开多空间

类型指针=new 类型[n个]{初始化值};

1.delete释放单空间

delete 指针;

2.delete释放多空间

delete []指针;

(对于内置类型,delete就相当于free,所以delete p,也没问题,因为自定义类型要析构释放资源,不delete[] p使仅能调第一个对象的析构,其他仅能free,不能调用析构,资源泄漏。

注意:如果传参的个数少于开辟的类型个数,对内置类型,其他变量赋值0,自定义类型调用它的默认构造。

5.初始化参数与某成员构造参数个数相同情况

要调用多参构造,要在花括号内部加{参数},外部花括号是指多个对象初始化表,内部花括号指单个对象多参数表。

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

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

相关文章

【Vue3】reactive对象类型的响应式数据

文章目录 reactive简介 reactive简介 用法: let xx reactive({xxx:“xxx”})返回值: 一个Proxy的对象,就是响应式对象特别注意: 数组也属于对象范畴,所以也能使用reactive,使其变成响应式数据reactive修改值时,不需要在值后写.v…

css 如何设置背景图片定位

在CSS中设置背景图片的位置,可以使用 background-position 属性。这个属性用于指定背景图像在元素背景区域中的起始位置。它可以接受多种类型的值,包括关键字、长度单位(像素、百分比等)以及组合值。 各种用法示例: 关…

MapReduce 机理

1.hadoop 平台进程 Namenode进程: 管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分别是Namespace 镜像文件(Namespace image)和操作日志文件(edit log)&#xff…

书生浦语大模型实战训练营--第二期第六节--Lagent AgentLego 智能体应用搭建--homework

一、基础作业 1.完成 Lagent Web Demo 使用,并在作业中上传截图 根据以下命令启动成功! 2.完成 AgentLego 直接使用部分,并在作业中上传截图 这是原图 使用AgentLego进行自动目标检测后,很明显图中的物体已经被识别出来了 二、…

Ubuntu20.04上安装ssmtp通过SMTP方式发送邮件

系统中使用脚本监控内存和磁盘使用情况,需要用到smtp来发送通知邮件。mailx无法在ubuntu系统上使用,经过尝试可以安装ssmtp来使用SMTP服务向外发送邮件。 1、安装好的Ubuntu20.04中可能已经自带了邮件系统,先删除它们 sudo apt autoremove p…

【QT教程】QT6Lite开发实战

QT6Lite开发实战 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费…

【python】如何通过python来发邮件,各种发邮件方式详细解析

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

MQ技术选型

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。它可以实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。 RabbitMQ 特点: RabbitMQ 相当轻量级的消息队列&#xff…

英伟达一系列高质量公开课来了!

B站:啥都会一点的研究生公众号:啥都会一点的研究生 英伟达免费提供许多自学课程,评价肥肠高,有专为初学者设计的也有更进阶的内容(提供证书),若实验室/单位基于NVIDIA Jetson进行开发&#xff…

正则表达式大全,30个正则表达式详细案例

正则表达式在中是非常强大的工具,以下是正则表达式的30个使用案例: 1. 查找以特定字符开始的数据: SELECT * FROM table WHERE column REGEXP ^a; 2. 查找以特定字符结束的数据: SELECT * FROM table WHERE column REGEXP a$; …

Junit 更多-ApiHug准备-测试篇-010

🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace 如果大家…

VisualGLM-6B的部署步骤

对于如下命令,你将完全删除环境和环境中的所有软件包 conda remove -n env_name --all 一、VisualGLM-6B环境安装 1、硬件配置 操作系统:Ubuntu_64(ubuntu22.04.3) GPU:4050 显存:16G 2、配置环境 建…

授人以渔 选购篇九:扫地机器人(扫拖机器人)选购要点

文章目录 系列文章自动上下水导航技术:立体激光导航视觉导航,多传感器清洁能力:胶条刷、旋转拖布健康卫生:热水洗拖布、热风烘干智能功能品牌其他 系列文章 授人以渔 选购篇一:信用卡选购要点 授人以渔 选购篇二&…

2024华中杯C题光纤传感器平面曲线重建原创论文分享

大家好,从昨天肝到现在,终于完成了2024华中杯数学建模C题的完整论文啦。 给大家看一下目录吧: 目录 摘 要: 10 一、问题重述 12 二.问题分析 13 2.1问题一 13 2.2问题二 14 2.3问题三 14 三、模型假设 15 四、…

HWOD:字符串字符匹配

一、知识点 c语言中,判断一个字符串中是否含有某字符是很容易的,不需要知道字符串的长度 i0; while(c ! str[i] && str[i] ! \0){ i; } if(str[i] \0){ return false; } return true; 二、题目 1、描述 判断短字符串S中的所有字符…

闭包的概念总结与分析

1 定义 闭包又称词法闭包 闭包最早定义为一种包含和的实体. 在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures)&#…

Redis: 在项目中的应用

文章目录 一、Redis的共享session应用二、分布式缓存1、缓存2、缓存一致性问题解决方案(缓存更新策略)(1)作用(2)三种策略(3)主动更新策略(数据库、缓存不一致解决方案&a…

JavaScript系列:实用的数组比较方法

目录 引用比较的局限性 使用JSON.stringify()方法比较 使用Array.every()方法进行比较 结论 在JavaScript编程中,经常会遇到需要比较两个数组是否相等的场景。但是,由于JavaScript中数组是以引用方式比较,而非值比较,这使得直…

一切皆因数据

大语言模型在自然语言处理(NLP)领域取得突破性进展的原因:总体上,基本上都与数据集有关,庞大数据集带来巨大的挑战。可以说,数据的量的变化,带来的深度学习的质的飞跃。挑战与收益是并存的&…

汽车研发项目进度管理的挑战与优化策略

随着汽车行业的快速发展和市场竞争的加剧,新车型研发项目的进度管理成为车企赢得市场的关键。然而,由于汽车研发项目通常具有投资大、周期长、技术难度高、参与方众多等特点,项目进度管理面临着诸多挑战。为了提升车型研发效率、缩短研发周期…