C++ ─── 匿名对象+变量的创建顺序

目录

1. 匿名对象(临时对象)

2. 编译器的优化

3.变量的创建与销毁


1. 匿名对象(临时对象)

        我们先来看有名对象的创建

Date d1;
Date d2(2024,4,27);

        匿名对象的创建

Date(2024,56,1);

        生成了一个匿名对象,执行完Date(2024,5,1),此匿名对象就消失了。

注意:

        匿名对象的生命周期为当前行。

        匿名对象具有常性。

★★★产生匿名对象(临时对象)的情况:

        1. 传值传参(先将值转为匿名对象)
        2. 类型转换

         3.传值返回

2. 编译器的优化

        1. 在连续的表达式中, 构造+拷贝构造------》优化成一个构造

eg: 传值传参

        2. 连续的表达式中,拷贝构造+拷贝构造-----》优化成一个拷贝构造

eg: 接受传值返回

        3. 连续的表达式中,赋值重载+拷贝构造可能不会优化

        4. 有些编译器也可能跨行优化,过度优化。

3.变量的创建与销毁

        ★ 在同一个栈帧中,后定义的先析构,后进先出(编译器自动)

        ★ 局部的静态变量如(下面的D),生命周期是全局,且只会在第一次调用时进行构造,第二次不进行构造

//设已经有A,B,C,D4个类的定义,程序中A,B,C,D析构函数调用顺序为?

C c;

void main()
{

  A*pa=new A();

  B b;

  static D d;

  delete pa;

}

        答案:A B D C

        分析: 首先手动释放pa, 所以会先调用A的析构函数,其次会跟定义相反的顺序释放局部对象,这里只有b,就释放b,再释放静态局部对象d,再释放全局对象c( D和C相当于在一个栈帧定义的,且是C先定义,D后定义)

 如果去除delete pa;

答案是 B A D C

        

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

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

相关文章

MySQL之binlog归档日志

binlog(二进制归档日志) binlog 二进制日志记录保存所有执行过的修改操作语句,不保存查询操作。如果 MySQL 服务意外停止,可通过二进制日志文件排查,用户操作或表结构操作,从而来恢复数据库数据。启动 bin…

Vue的安装及使用教程【超详细图文教程】

一、安装Node.js 安装步骤详细见Node.js下载安装及环境配置 》https://blog.csdn.net/WHF__/article/details/129362462 二、安装vue ①安装 vue.js: npm install vue -g // -g为全局安装 注意:要以管理员身份运行cmd命令窗口!&#xf…

深入浅出MySQL-02-【MySQL支持的数据类型】

文章目录 前言1.数值类型2.日期时间类型3.字符串类型3.1.CHAR和VARCHAR类型3.2.ENUM类型3.3.SET类型 4.JSON类型 前言 环境: Windows11MySQL-8.0.35 1.数值类型 MySQL中的数值类型,如下: 整数类型字节最小值最大值TINYINT1有符号 -128无…

从 Apache Doris 到 SelectDB Cloud:云原生架构下的弹性能力揭秘

随着云时代的到来,越来越多企业开始在公有云、私有云乃至 K8s 容器平台构建实时数据平台。云计算基础设施的革新,促使着数据仓库朝着云原生的方向发展。而用户日益复杂的业务负载和降本增效的需求,对于系统资源的精细化管理和成本效益等方面提…

64、二分-搜索二维矩阵

思路: 通过使用二分方式,对于每行进行二分,因为每行的最后一个数小于下一行的第一个数,我们就可以依次二分。首先取出行数N,然后从0-N进行二分,如果mid最后一个数小于目标值说明0-mid中没有,舍弃…

36 线程概念

本章重点 1.了解线程概念,理解线程与进程的区别与联系 2.学会现充控制,线程创建,线程终止,线程等待 3.了解现场分离与线程安全 4.学会线程同步 5.学会使用互斥量,条件变量,posix信号量,以及读写…

cnpm安装

npm install -g cnpm --registryhttps://registry.npmmirror.com # 注册模块镜像 npm set registry https://registry.npmmirror.com // node-gyp 编译依赖的 node 源码镜像 npm set disturl https://npmmirror.com/dist // 清空缓存 npm cache clean --force // 安装c…

Linux中的yum和gcc/g++

一、快速认识yum(简单介绍) 在Linux中,我们也要进行工具/指令/程序、安装、检查、卸载等等,需要使用到yum 在Linux中安装软件的方式: 源代码安装——交叉编译的工作rpm包直接安装yum/apt-get yum:yum是我们Linux预…

Androd SharedPreferences 存取key-value键值对的用法小结

文章目录 一、存储数据二、读取数据三、删除数据3.1 删除指定KEY的数据3.2 删除所有数据 四、测试4.1 查找数据文件4.2 查看数据的存储 在开发一个简单Launcher,点击APP按钮后,如无APP绑定,则弹出一个APP选择列表,选择后进行绑定&…

STL--string详解

STL基本内容 string是什么 string实质上是一个对象 string可看作一个串,类似字符数组 可以扩容,可以增删查改 可用下表访问操作符[]引用,修改某值 构造函数 默认构造 拷贝构造:参数为(string 或 char*) 求string对象的长度不…

AI预测体彩排列3第2套算法实战化测试第5弹2024年4月27日第5次测试

今天继续进行新算法的测试,今天是第5次测试。好了,废话不多说了,直接上图上结果。 2024年4月27日体彩排3预测结果 6码定位方案如下: 百位:6、2、1、7、8、9 十位:8、9、4、3、1、0 个位:3、7、8…

【C++】学习笔记——类和对象5

文章目录 二、类和对象14. 日期类的实现15. const成员16. 取地址重载17. 再谈构造函数初始化列表 18. explicit关键字19. static成员 未完待续 二、类和对象 14. 日期类的实现 上一篇我们已经大致将日期类的重要功能都给实现了,这节将会对日期类进行完善&#xff…

在Windows10上安全弹出U盘的三种方法,总有一种适合你

序言 为了避免数据丢失,你有必要学习如何在使用完外部硬盘或U盘后安全地将其从计算机中取出。如果在断开U盘之前不弹出,你可能会面临数据损坏的问题。所以不要懒惰。那么,如何从计算机中弹出外部硬盘驱动器或U盘?看看这里。这篇文…

强化训练:day5(游游的you、腐烂的苹果、孩子们的游戏(圆圈中最后剩下的数)

文章目录 前言1. 游游的you1.1 题目描述1.2 解题思路1.3 代码实现 2. 腐烂的苹果2.1 题目描述2.2 解题思路2.3 代码实现 3. 孩子们的游戏(圆圈中最后剩下的数)3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 本章内容:游游的you、腐烂的苹果、孩子们的游戏(圆圈中…

【03】JAVASE-分支语句【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇 Lecture:波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。…

Redis 服务等过期策略和内存淘汰策略解析

redis服务是基于内存运行的,所以很多数据都存放在内存中,但是内存又不是无限的,所以redis就引出了key的过期和淘汰策略。 一、Redis的过期策略: 我们在set key的时候,可以给它设置一个过期时间,比如expire …

Autosar MCAL-RH850P1HC Fls配置

文章目录 FlsFlsGeneralFlsAcLoadOnJobStartFlsBaseAddressFlsBlankCheckApiFlsCancelApiFlsCompareApiFlsCopySupportedFlsCriticalSectionProtectionFlsDevErrorDetectFlsDeviceNameFlsDriverIndexFlsFaciEccCheckFlsGetJobResultApiFlsGetStatusApiFlsLoopCountFlsReadImmed…

(待更)DRF: 序列化器、View、APIView、GenericAPIView、Mixin、ViewSet、ModelViewSet的源码解析

前言:还没有整理,后续有时间再整理,目前只是个人思路,文章较乱。 注意路径匹配的“/” 我们的url里面加了“/”,但是用apifox等非浏览器的工具发起请求时没有加“/”,而且还不是get请求,那么这…

大语言模型在研究领域的应用——信息检索中的大语言模型

信息检索中的大语言模型 大语言模型提升信息检索任务利用大语言模型进行信息检索大语言模型增强的信息检索模型. 检索增强的大语言模型输入优化策略.指令微调策略.预训练策略. 总结应用建议未来方向 大语言模型对于传统信息检索技术与应用范式带来了重要影响。这两者在技术路径…

【加密周报】中美下周有“大事”发生!准备联手引爆比特币大行情?美国大型养老基金和梅隆银行已持有比特币ETF!

自减半之后,比特币便进入了横盘状态,始终在6-6.5万美元价格区间震荡。4月24日,香港证监会官网正式公示虚拟资产现货ETF获批名单,华夏(香港)、嘉实国际、博时国际旗下相关产品均在其列,并计划将于…
最新文章