当前位置: 首页 > news >正文

对象优化及右值引用优化(一)

对象优化及右值引用优化

对象的函数调用时机

class Test {
public:Test(int val = 0) :val_(val) {cout << "Test::Test" << endl;}~Test(){cout << "Test::~Test" << endl;}Test(const Test& test){cout << "Test::Test(const Test& test)" << endl;val_ = test.val_;}Test& operator=(const Test& test){cout << "Test::operator=(const Test& test)" << endl;if (this == &test)return *this;val_ = test.val_;return *this;}
private:int val_;
};
构造函数的调用
 Test t1;Test t4 = Test(1); // Test(1)显示生成临时对象,生存周期:当前所在语句除了语句就析构。使用临时对象
  • Test t4 = Test(1) 被优化成Test t4(1)
  • Test(1)会产生一个临时对象,当出该语句的时候就析构该对象
拷贝构造函数的调用
 Test t2(t1);Test t3 = t1;
  • 产生一个新对象的时候使用对象对其初始化,调用拷贝构造
赋值函数调用
 t2 = t4;t1 = Test(1); // 显式临时对象的生成t2 = (Test)1; // 显式临时对象的生成t3 = 30;      // 隐式临时对象的生成
  • 对已经存在的对象进行赋值的时候,调用赋值函数
引用临时对象
const Test& ref = Test(20);//Test* p = &Test(10); // &后面接临时变量时不能取地址
  • 相当于为临时对象起了个别名,对象的生存周期延长
  • 临时对象不能使用&取地址
局部静态对象的构造函数调用时机
  • 最先在数据区为其开辟内存空间
  • 只要有在运行到该对象的构造函数调用点,才会调用该对象构造函数
  • 程序结束时,才调用该对象析构函数

RVO优化

G++ 编译器,在函数返回对象时候会将创建的临时变量优化掉,导致不会调用对应的拷贝构造函数。g++编译的时候可以使用下面命令关闭掉RVO优化,

-fno-elide-constructors

相关文章:

对象优化及右值引用优化(一)

对象优化及右值引用优化 对象的函数调用时机 class Test { public:Test(int val 0) :val_(val) {cout << "Test::Test" << endl;}~Test(){cout << "Test::~Test" << endl;}Test(const Test& test){cout << "Tes…...

江西省技能培训平台(逆向破解登录国密SM2)

江西省技能培训平台(逆向破解登录) 登录破解(国密sm2加密方式) 请求接口 https://api.cloud.wozhipei.com/auth/user/v1/login 使用身份证和密码登录发现有password加密&#xff0c;好开始逆向js 全局搜索发现使用国密SM2进行加密 模拟算法 js 使用js进行模拟算法 <…...

用万用表测量三极管:【判断是NPN\PNP+3极性】

三极管种类分2种&#xff0c;一种NPN型三极管&#xff0c;另外一种为PNP三极管。三极管由2个PN结组成。因此&#xff0c;我们可以将三极管看作由2个二极管组成。通过下图可以知道&#xff0c;三极管的公共端为B极&#xff08;基极&#xff09;。 1&#xff1a;测量方法 用万用…...

StableDiffusion系列教程 | 什么是SD?SD能做什么?有哪些应用场景?

随着人工智能技术的飞速发展&#xff0c;人工智能应用已经渗透到我们生活方方面面。在众多AI技术中&#xff0c;Stable Diffusion&#xff08;简称SD&#xff09;作为一种先进的图像生成技术&#xff0c;正逐渐成为创意产业的新宠。在本系列的首篇文章中&#xff0c;我们将一起…...

AutoCAD的Dwg版本代号、R版本参数值以及二次开发时VS、.NET版本关系

Dwg的AC版本代号 出处&#xff1a;https://www.autodesk.com.cn/support/technical/article/caas/sfdcarticles/sfdcarticles/CHS/drawing-version-codes-for-autocad.html 以下是AutoCAD图形的不同版本代号&#xff1a; MC0.0 - DWG Release 1.1 AC1.2 - DWG R1.2 AC1.4 - DW…...

解密可观测行业中的语义规范 — 代码世界中的“语言艺术”

可观测行业中的语义规范 语义规范可以说在我们生活中无处不在&#xff0c;它为某种语言或文化中的单词和短语提供了一致的意义&#xff0c;以促进更清晰的交流。 而在计算机世界中&#xff0c;语义规范也同样甚至更加关键&#xff0c;因为屏幕上的文本缺乏更丰富的对话环境—…...

esp32 ap httpsever 控制led

功能&#xff1a;浏览器/open 开 led /close 关led 如不关&#xff0c;则亮灯10秒自动关闭 已买220v 转5V电源&#xff0c;5V固态继电器&#xff0c;开始组装无线开关。 代替家里华为的hlink灯泡&#xff0c;此灯必须要连入网络才能控制开和关&#xff0c;经常时灵时不…...

告别复杂判断!Python中实现函数重载的终极技巧

引言 说到函数重载&#xff0c;学过 Java 的同学应该不陌生&#xff0c;最常用的地方应该就是打印 log 了&#xff0c;对于不同的参数&#xff0c;调用的是不同的重载函数。那么 Python 如何实现函数重载呢&#xff1f; 重载概念 函数重载是指在同一作用域内&#xff0c;允许…...

Clang-Format:让你的代码整齐划一,格式不再烦恼

在现代软件开发中&#xff0c;代码规范和一致性对团队协作和代码质量至关重要。如何保持代码风格一致&#xff0c;避免手动格式化的繁琐操作&#xff1f;clang-format 是一款强大而灵活的代码格式化工具&#xff0c;它为开发者提供了高效的解决方案。本文将详细介绍 clang-form…...

【jvm】Full GC

目录 1. 说明2. 触发条件3. 优化4. 注意事项 1. 说明 1.Full GC&#xff08;Full Garbage Collection&#xff09;是Java垃圾回收过程中最重要且最昂贵的一种操作。2.Full GC涉及对整个堆内存&#xff08;包括年轻代和老年代&#xff09;的垃圾回收。3.当Full GC发生时&#x…...

【Python】实战:请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

# 定义汽车基类 class Car:def __init__(self, model, license_plate):self.model model # 车型self.license_plate license_plate # 车牌def start(self):print(f"{self.model} ({self.license_plate}) 启动了。")def stop(self):print(f"{self.model} ({s…...

互联网摸鱼日报(2024-11-07)

互联网摸鱼日报(2024-11-07) 36氪新闻 阿华田再现颓势 中国旅游景区上市公司&#xff0c;三季度财报好看吗&#xff1f; 电动化浪潮下&#xff0c;消费者彻底放弃百年品牌BBA&#xff1f; 估值114亿&#xff0c;海尔系独角兽终止IPO 又一知名品牌门店全关&#xff0c;高端…...

requests库

GET请求 基本实例import requestsresponse requests.get(https://www.httpbin.org/get) print(response.text)params参数import requests data {"name":"Bileton","age":"21" } response requests.get(https://www.httpbin.org/ge…...

大数据之多级缓存方案

多级缓存介绍&#xff1f;多级缓存优缺点&#xff0c;应用场景&#xff1f;多级缓存架构&#xff1f; 多级缓存介绍 多级缓存方案是一种优化手段&#xff0c;通过在多个级别上存储数据来提高应用程序的性能和响应速度。以下是对多级缓存方案的详细解析&#xff1a; 一、多级缓…...

QCon演讲实录|徐广治:边缘云原生操作系统的设计与思考

10月18日&#xff0c;在 QCon 全球软件开发大会 2024&#xff08;上海站&#xff09;&#xff0c;火山引擎边缘云资深架构师徐广治围绕火山引擎边缘计算产品背后的算力底座 - 边缘云原生操作系统&#xff0c;探讨如何实现算力服务的混合部署和跨区域弹性调度&#xff0c;以及在…...

web第二次作业

代码如下 <!DOCTYPE html> <html> <head> <!-- 设置页面的字符编码为utf-8&#xff0c;确保能正确显示各种字符 --> <meta charset"utf-8"> <title></title> <style> /* 全局样式设置 */ *{ …...

大模型技术讲解:大模型参数微调(大模型微调)

转自 秋色稻田公众号 这篇文章讲讲大模型的参数微调&#xff0c;参数微调&#xff08;Fine-tuning&#xff09;是一种机器学习技术&#xff0c;用于调整大型预训练模型的参数&#xff0c;以大模型适应特定应用场景。这种方法通常用于自然语言处理&#xff08;NLP&#xff09;…...

测试自动化如何和业务流程结合?

测试自动化框架固然重要&#xff0c;但是最终自动化的目的都是为了业务服务的。 那测试自动化如何对业务流程产生积极影响&#xff1f; 业务流程的重要性 测试自动化项目并非孤立存在&#xff0c;其生命周期与被测试的应用程序紧密相关。项目的价值在于被整个开发团队所使用&a…...

Python进阶之IO操作

文章目录 一、文件的读取二、文件内容的写入三、之操作文件夹四、StringIO与BytesIO 一、文件的读取 在python里面&#xff0c;可以使用open函数来打开文件&#xff0c;具体语法如下&#xff1a; open(filename, mode)filename&#xff1a;文件名&#xff0c;一般包括该文件所…...

ubuntu如何卸载colmap

如果你是通过源码编译并安装的 COLMAP&#xff0c;可以按照以下步骤手动卸载&#xff1a; 1. **查找安装路径**&#xff1a; 检查 COLMAP 安装时的路径&#xff08;通常是 /usr/local&#xff09;。 2. **删除二进制文件**&#xff1a; 删除已安装的 COLMAP 可执行文…...

3步解决Atlas OS中Xbox登录错误0x89235107的实用方案

3步解决Atlas OS中Xbox登录错误0x89235107的实用方案 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas1/Atlas …...

Fusion 360 3D打印螺纹终极指南:告别打印失败,轻松创建完美螺纹

Fusion 360 3D打印螺纹终极指南&#xff1a;告别打印失败&#xff0c;轻松创建完美螺纹 【免费下载链接】CustomThreads Fusion 360 Thread Profiles for 3D-Printed Threads 项目地址: https://gitcode.com/gh_mirrors/cu/CustomThreads 在Fusion 360中设计3D打印螺纹时…...

Keil MDK进阶技巧:如何为单个C文件设置独立的优化等级(解决整体优化引发的诡异Bug)

Keil MDK进阶技巧&#xff1a;如何为单个C文件设置独立的优化等级&#xff08;解决整体优化引发的诡异Bug&#xff09; 当你在Keil MDK中为整个工程设置了高优化等级&#xff08;如-O2&#xff09;后&#xff0c;突然发现某个关键模块&#xff08;比如通信协议栈或算法库&…...

哔哩下载姬(downkyi)全功能指南:从入门到精通的视频下载解决方案

哔哩下载姬(downkyi)全功能指南&#xff1a;从入门到精通的视频下载解决方案 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水…...

别再为电赛E题发愁了!用OpenMV+舵机云台搞定运动目标追踪的保姆级避坑指南

OpenMV舵机云台运动目标追踪实战&#xff1a;从硬件搭建到代码调试的全流程避坑指南 刚拿到电赛E题任务书时&#xff0c;看着"运动目标控制与自动追踪系统"这个标题&#xff0c;我和队友面面相觑——既要处理图像识别&#xff0c;又要协调舵机运动&#xff0c;这对毫…...

李慕婉-仙逆-造相Z-Turbo一键部署教程:基于Ubuntu20.04的快速环境搭建

李慕婉-仙逆-造相Z-Turbo一键部署教程&#xff1a;基于Ubuntu20.04的快速环境搭建 1. 开篇&#xff1a;为什么选择这个方案&#xff1f; 如果你对AI绘画感兴趣&#xff0c;特别是想自己动手部署一个功能强大的开源模型来玩玩&#xff0c;那今天这个教程就是为你准备的。李慕婉…...

HDMI转VGA转换器硬件设计实战:基于MX9291的电路实现

1. HDMI转VGA转换器的核心价值与应用场景 当你手头有一台只有VGA接口的老显示器&#xff0c;而电脑却只有HDMI输出时&#xff0c;MX9291芯片就是解决这个兼容性问题的钥匙。这种转换需求在企业和教育领域特别常见——很多会议室和教室的投影仪至今仍在使用VGA接口。我去年就帮朋…...

NVIDIA GPU监控效能深度解析:nvitop如何破解多用户环境资源管理难题

NVIDIA GPU监控效能深度解析&#xff1a;nvitop如何破解多用户环境资源管理难题 【免费下载链接】nvitop An interactive NVIDIA-GPU process viewer and beyond, the one-stop solution for GPU process management. 项目地址: https://gitcode.com/gh_mirrors/nv/nvitop …...

VMware虚拟机体验FLUX.1:Windows系统免环境配置方案

VMware虚拟机体验FLUX.1&#xff1a;Windows系统免环境配置方案 想快速体验最新的AI绘画技术却苦于环境配置&#xff1f;FLUX.1作为当前最强的开源文生图模型之一&#xff0c;让很多Windows用户望而却步。本文介绍一种零门槛的解决方案——通过VMware虚拟机一键体验&#xff0c…...

3个步骤解锁QQ音乐加密文件:QMCDecode让音乐重获自由

3个步骤解锁QQ音乐加密文件&#xff1a;QMCDecode让音乐重获自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转…...