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.mzph.cn/web/4193.shtml

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

相关文章

photoshop如何使用PS中的吸管工具吸取软件外部的颜色?

第一步,打开PS,随意新建一个画布,或打开一个图片。 第二步,将PS窗口缩小,和外部窗口叠加放置,以露出后面的其它页面。 第三步,选中吸管工具,在PS窗口内单击一点吸取颜色,…

江开2024年春《心理健康 060211》过程性考核作业二参考答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 单选题 1提出理性情绪疗法的心理学家是( &a…

1、Flink DataStreamAPI 概述(上)

一、DataStream API 1、概述 1)Flink程序剖析 1.Flink程序组成 a)Flink程序基本组成 获取一个执行环境(execution environment);加载/创建初始数据;指定数据相关的转换;指定计算结果的存储…

SpringBoot 缓存

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 目录 一、缓存的作用二、SpringBoot启用缓存三…

STM32单片机通过ST-Link 烧录和调试

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. ST-LINK V2 2. 操作步骤 2.1 连接方式 2.2 驱动安装常规步骤 2.3 Keil中的设置 3. 调式仿真 4. 常见问题排查 1. ST-LINK V2 ST LINK v2下载器用于STM32单片机,可以下载程序、调试…

c++并查集

文章目录 前言一、并查集1、并查集原理2、并查集实现3、并查集应用1.省份数量2.等式方程的可满足性 前言 一、并查集 1、并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后…

机器视觉检测技术是什么?突出的亮点有哪些?

机器视觉检测技术是一种利用图像处理软件分析处理相机捕捉到的图像,以替代人眼在制造和测试过程中进行检测和测量的技术。它广泛应用于工业自动化领域,可以提高生产效率和质量控制的精度。机器视觉系统通常包括光源、相机、图像处理单元和执行机构等组成…

如何链接多个modbus_tcp设备,并将设备数据写入同一个modbusSlave,以便外部客户端获取所有链接设备的数据。

在modbus通信中,一个modbus服务器一次只能链接一个客户机,那么,外部客户端要获取多个设备的modbus数据,就需要使用链接一个专用的mosbus服务器,一下就是详细解决方法。 第一步:创建modbus客户端&#xff0…

组合总数 python

‘’已知—个无重复元素的序列,给定—个目标数,找出序列中所有可以使数字和未目标数的组合。 序列中的元素可以被多次选用,不能出现重复的组合, 序列中的元素和目标数都是正整数。 例如序列 [2, 3, 5], 目标值为8, 最终的组合有 (2, 3, 3&am…

nvm基本使用

nvm基本使用 文章目录 nvm基本使用1.基本介绍2.下载地址3.常用指令 1.基本介绍 NVM是一个用于管理 Node.js 版本的工具。它允许您在同一台计算机上同时安装和管理多个 Node.js 版本,针对于不同的项目可能需要不同版本的 Node.js 运行环境。 NVM 主要功能&#xff…

嵌入式学习——C语言基础——day10

1. 指针的基本概念 1.1 地址 用来区别不同内存字节空间的编号 1.2 指针 地址就是指针,指针就是地址,地址是一个编号,指针多了指向的概念 1.3 指针变量 用来存放指针的变量,有时将指针变量简称为指针 2. 指针相关运算符 & …

24深圳杯AC题完整思路+可执行代码+参考论文!!!!

比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的,大家可以参考我往期的资料,所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意:(建议先下单占坑,因为随着后续我们更新资料数…

001 rabbitmq减库存demo direct

文章目录 ProducerConsumerRabbitMQDirectConfig.javaapplication.yamlServletInitializer.javaRabbitmqApplication.javapom.xml“该消息已经准备好再次被消费”和“队列已经准备好重新分发该消息” Producer 这段代码定义了一个名为Producer的RESTful Web服务Controller&…

iOS(Object C) 插入排序

插入排序的思想: 可以想象你在打牌,手里有一张牌2, 第一次摸到一张牌5; 5 比1 大,所以摸到的牌5放在1的右边; (此时手里的牌为 2->5) 第二次摸到一张牌3; 3比5小,所以3和5互换位置,再拿3和2比,3比2大,3不动(此时手里的牌为 2-> 3 -> 5) 第三次摸到一张牌1,1比5小,…

Windows10系统安装IIS的步骤

在Windows 10上安装IIS的步骤如下:12 打开控制面板,选择“程序”或“程序和功能”。点击“启用或关闭Windows功能”。在列表中找到“Internet Information Services”,勾选该选项。根据需要勾选IIS的具体组件,如万维网服务、IIS可…

创新指南 | 2024年企业如何十步打造最佳的数字化营销策略组合

营销是一个动态且不断变化的领域。顶级的数字营销策略随着消费者和技术趋势的变化而变化。这就是为什么每个公司都需要一个经过良好规划并具有明确里程碑和目标的营销策略。一旦你有了正确的计划,你实现为业务设定的目标的可能性就会大大增加。这意味着,…

面试经典150题——求根节点到叶节点数字之和

​ 1. 题目描述 2. 题目分析与解析 2.1 思路一——DFS 理解问题: 首先要理解题目的要求,即对于给定的二叉树,我们需要找出从根节点到所有叶子节点的所有路径,然后将每一条路径上的数字组成一个整数,最后求出这些整数…

k8s部署prometheus

部署pvc 修改nfs-deployment.yaml文件中的信息&#xff0c;然后应用YAML文件 cat > /opt/k8s/prometheus/prometheus-pvc.yaml <<EOF apiVersion: v1 kind: PersistentVolumeClaim metadata:name: prometheus-data-pvc spec:accessModes:- ReadWriteManystorageClas…

京东天幕,宙斯,云鼎什么关系

京东云鼎是京东云推出的一站式零售应用云计算平台&#xff0c;为商家、品牌商及合作伙伴与京东无界赋能的商业赋能、业务赋能、品牌赋能等服务集成&#xff0c;提供弹性的云计算资源、可靠的安全服务、高效的数据推送服务、标准化的网关服务&#xff0c;并优先享受京东的云端生…

手把手教数据结构与算法:栈的应用(平衡符号和简单计算器)

栈 基本概念 栈的定义 栈&#xff08;Stack&#xff09;&#xff1a;是只允许在一端进行插入或删除的线性表。首先栈是一种线性表&#xff0c;但限定这种线性表只能在某一端进行插入和删除操作。 栈顶&#xff08;Top&#xff09;&#xff1a;线性表允许进行插入删除的那一端…